mai_mai_mail回答ポイント 100ptウォッチ

Visual studio 2015でPingプログラムを試しています。 以下のurlを参照しています。コンパイルが通り実行しまいた。host名でのpingは成功しました。ただし、IPアドレスでは失敗します。理由はDNSやHOSTSから名前が引けてないからです。実施には通信機器などDNS登録がないものも多々あるのでこれでは使いもになりません。

http://www.winsock2.org/samples/Ch05/PingI/pingi.c

iaDest.s_addr = inet_addr(argv[1]);
if (iaDest.s_addr == INADDR_NONE)
pHost = gethostbyname(argv[1]);
else
pHost = gethostbyaddr((const char *)&iaDest, sizeof(struct in_addr), AF_INET);
if (pHost == NULL){
fprintf(stderr, "\n%s not found\n", argv[1]);
WSACleanup();
FreeLibrary(hndlIcmp);
return;
}

// 動作状況をユーザーに表示
printf("\nPinging %s [%s]", pHost->h_name,
inet_ntoa((*(LPIN_ADDR)pHost->h_addr_list[0])));

// IPアドレスをコピー
dwAddress = (DWORD *)(*pHost->h_addr_list);

一番簡単な方法はdwAddressに直接argv[1]を入れればいいtおもっています。単なる代入式(=)ではうまくいきませんでした。DWORDでCastしてもだめでした。

どなたか、解決方法をご教授いただけますか?

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2016-10-27 23:09:49
終了日時
2016-11-03 23:10:03
回答条件
1人1回まで

この質問のカテゴリ

この質問に含まれるキーワード

Visual Studio215IPアドレス812DNS529コンパイル428Ping364Char156const51プログラム5048URL11376通信119解決341ARGV23

人気の質問

メニュー

PC版