1
#include <stdio.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main () {
    in_addr ip;
    ip.s_addr = inet_addr("173.194.71.94"); // www.google.fr IP
    hostent* hostnames = gethostbyaddr(&ip, sizeof(ip), AF_INET);
    if (hostnames != NULL && hostnames[0].h_name != NULL) {
        printf("%s\n", hostnames[0].h_name);
        return 0;
    } else {
        herror("gethostbyaddr");
        return 1;
    }
}

「gethostbyaddr: 不明なホスト」が返されます。私は別のIPで試しました。どうしたの ?

誰でも私を助けることができますか?ありがとう

4

1 に答える 1

0

あなたのコードは私のためにコンパイルされません。とでエラーが発生しin_addrますhostent。しかし、それらの宣言をそれぞれとに変更するstruct in_addrstruct hostent、警告なしにコンパイルされ、実行時に次の出力が出力されます。

lb-in-f94.1e100.net

これは正しいようです。

そのままコンパイルする場合は、おそらく別のオペレーティングシステムを使用しています。MacOSとLinuxを試しましたが、同じ結果になりました。

于 2012-09-08T17:50:43.483 に答える