2015-08-13 11:47:47
来 源
中存储网
Ubuntu
Ubuntu上获取主机ip: #include stdio.h #include stdlib.h #include netdb.h #include unistd.h #include errno.h #include linux/limits.h #include arpa/inet.h main() { struct hostent *h; char **p; char hostname[PATH_MAX]; gethostname(hostname,PAT

Ubuntu上获取主机ip:

#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <unistd.h>
#include <errno.h>
#include <linux/limits.h>
#include <arpa/inet.h>
main()
{
struct hostent *h;
char **p;
char hostname[PATH_MAX];
gethostname(hostname,PATH_MAX);
printf("hostname = %s n",hostname);
h = gethostbyname(hostname);
printf("hostname = %s n",h->h_name);
printf("hostalias = %s n",*(h->h_aliases));
//printf("hostalias2 = %s n",*(++(h->h_aliases)));
//printf("hostalias3 = %s n",*((h->h_aliases)+2));
printf("h_length = %d n",h->h_length);
//格式化IP地址
printf("hostip = %s n",inet_ntoa(*((struct in_addr *)(h->h_addr_list[0]))));
}

在ubuntu上使用PATH_MAX需要引入#include <linux/limits.h>

使用inet_ntoa需要引入#include <arpa/inet.h>

这和其他版本的linux可能有所区别!

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。