IPアドレスからホスト情報を取得する手段として実装中の
gethostbyaddr()の扱いで少々困っています。
IP設定が正しくされている端末に対して、gethostbyaddr()で
ホスト名を取得させたいのですが、
Windows95の環境では、ホスト名が存在しないという形で値が戻されます。
エラーの詳細をみるために
WSAGetLastError()でエラー値を拾ったのですが、「WSANO_DATA」
ホスト見当たらないと言う答えが返ってきます。
他のOS(Windows98,NT4.0,2000 etc)では、正しく取得できて
いるのですが、95の環境だけうまくいくません。
下記にコーディングを示します。
struct in_addr iaDest;
strcpy(pHostName, "192.168.1.99");
// 宛先ソケットアドレスの設定
iaDest.s_addr = inet_addr(pHostName);
if (iaDest.s_addr == INADDR_NONE) {
pHost = gethostbyname(pHostName);
} else {
//この発行でNULL値が返却されます。
pHost = gethostbyaddr((const char *)&iaDest,
sizeof(struct in_addr), AF_INET);
}
どなたか、ご教授お願いできないでしょうか?
え〜っと、Windows95では、
WinSockのVer1が採用されているために動かないと考えられます。
この場合、MSのホームページからWinsock2にアップデートすれば
問題なく動くと思います。(違ってたらごめんなさい)
ツイート | ![]() |