Ошибка "Неизвестный хост" в C

Когда я писал консольное приложение для твиттера, у меня возникла проблема с функцией C gethostbyname(). API Twitter предлагает подключиться к https://api.twitter.com/oauth2/token, но когда я попытался получить IP с помощью этой функции, он вернул NULL. Curl разрешает URL нормально, и я не думаю, что это проблема с DNS. Подключенный код такой же, как я пробовал, он тоже не работает должным образом.

PS Возможно, моя проблема очень очевидна, но я потратил не менее 7 часов без каких-либо изменений в коде, просто пытаясь найти ответ.

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

int main(int argc, char *argv[])
{
    int i;
    struct hostent *he;
    struct in_addr **addr_list;

    if (argc != 2) {
        fprintf(stderr,"usage: ghbn hostname\n");
        return 1;
    }

    if ((he = gethostbyname(argv[1])) == NULL) {  // get the host info
        herror("gethostbyname");
        return 2;
    }

    // print information about this host:
    printf("Official name is: %s\n", he->h_name);
    printf("    IP addresses: ");
    addr_list = (struct in_addr **)he->h_addr_list;
    for(i = 0; addr_list[i] != NULL; i++) {
        printf("%s ", inet_ntoa(*addr_list[i]));
    }
    printf("\n");

    return 0;
}

0 ответов

Другие вопросы по тегам