我想知道如何使用 C 编程语言获取我的服务器的公共 ip。
我已经知道如何用 libcurl 做到这一点,但现在我想了解如何通过套接字编程(如果可能的话)获取这些信息。
我已经尝试过,struct hostent *hp
但我只得到本地地址127.0.0.1
这是我使用的代码:
int main(int argc, char *argv[]){
struct hostent *hp;
int i=0;
if((hp=gethostbyname(argv[1])) == NULL){
herror("gethostbyname()");
exit(1);
}
fprintf(stdout, "Hostname: %s\n", hp->h_name);
/* fprintf (stdout,"IP server: %s\n",inet_ntoa(*((struct in_addr *)hp->h_addr))); con questa printo solo 1 ip */
while (hp->h_addr_list[i] != NULL) { /* mentre così printo tutti gli eventuali ip */
printf("IP: %s\n", inet_ntoa(*(struct in_addr*)(hp->h_addr_list[i])));
i++;
}
return 0;
}