0

我有问题。我想将 IP 地址 (81.2.195.254) 转换为主机名 (www.farnost-hranice.cz)。
在这里你可以尝试转换这个IP地址看看,它是正确的:
https
://whatismyipaddress.com/hostname-ip 我的问题是,当我尝试将IP地址转换为主机名时,它让我很奇怪(甚至无法访问)主机名:
254.195.forpsi.net

我做错了什么?

我的代码在这里:

#include <stdio.h>  //scanf , printf
#include <string.h> //strtok
#include <stdlib.h> //realloc
#include <sys/socket.h> //socket
#include <netinet/in.h> //sockaddr_in
#include <arpa/inet.h>  //getsockname
#include <netdb.h>  //hostent
#include <unistd.h> //close
#include <getopt.h> //getopt

int main(void)
{


    struct sockaddr_in sa; // could be IPv4 if you want
        char host[1024];

        sa.sin_family = AF_INET;
        sa.sin_addr.s_addr = inet_addr("81.2.195.254");

        getnameinfo((struct sockaddr*)&sa, sizeof sa, host, sizeof host, NULL, 0, 0);
        printf("hostname: %s", host);
    return 0;
}
4

1 回答 1

0

正如预期的那样,IP 地址 81.2.195.254 的反向主机名(又名 PTR 记录)确实是254.195.forpsi.net

您可以像这样自己检查,例如使用程序“host”:

$ 主机 81.2.195.254

254.195.2.81.in-addr.arpa 域名指针254.195.forpsi.net。

正确的是,主机名www.farnost-hranice.cz指向IP 地址 81.2.195.254,但反过来没有链接。

于 2019-10-21T15:03:17.750 回答