getnameinfo () дает мне странное имя хоста - PullRequest
0 голосов
/ 21 октября 2019

У меня проблема. Я хочу преобразовать 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;
}

1 Ответ

0 голосов
/ 21 октября 2019

Как и ожидалось, обратное имя хоста (он же PTR-запись) для IP-адреса 81.2.195.254 действительно 254.195.forpsi.net

ВыВы можете проверить это сами, например, с помощью программы "host":

$ 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, нонет обратной связи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...