0

When I was writing twitter console application, I faced a problem with C function gethostbyname(). Twitter API offers to connect to https://api.twitter.com/oauth2/token , but when I tried to get IP by that function, it returned NULL. Curl resolves URL fine, and I don't think that's there is problem with DNS. Connected code is same as I've tried that doesn't work properly too.

P.S. Maybe my problem is very obvious, but I wasted at least 7 hour without any changes in code, just trying to find an answer.

#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;
}
halfer
  • 19,824
  • 17
  • 99
  • 186
  • And what did you type in for `argv[1]`? – user3386109 Oct 19 '16 at 06:06
  • And what was the results of running the program (with the input that user3386109 asked for above)??? – TonyB Oct 19 '16 at 06:09
  • When looking on that post [herror deprecated](http://stackoverflow.com/questions/11832705/herror-deprecated), both gethostbyname() and herror() functions are declared obsolete. – J. Piquard Oct 19 '16 at 08:57

0 Answers0