当前位置: 技术问答>linux和unix
怎么编程得到本地ip地址?
来源: 互联网 发布时间:2015-06-15
本文导语: 怎么编程得到本地ip地址? 如果有好几块网卡,每个网卡有几个ip怎么办? | 先通过uname() 在//sys/utsname.h 得到 nodename 再通过 gethostname() 在//netdb.h 得到的是 ip 列表(我个人认为得到...
怎么编程得到本地ip地址?
如果有好几块网卡,每个网卡有几个ip怎么办?
如果有好几块网卡,每个网卡有几个ip怎么办?
|
先通过uname() 在//sys/utsname.h
得到 nodename
再通过 gethostname() 在//netdb.h
得到的是 ip 列表(我个人认为得到是当前是活动的ip,我在我机器上试过)
struct utsname *name;
struct hostent *host;
char * ip;
uname(name);
host=gethostbyname(name->nodename);
for(int i=0;Host->Host->h_addr_list[i];i++)
ip=inet_ntoa(*((struct in_addr* )Host->h_addr_list[i]));
得到 nodename
再通过 gethostname() 在//netdb.h
得到的是 ip 列表(我个人认为得到是当前是活动的ip,我在我机器上试过)
struct utsname *name;
struct hostent *host;
char * ip;
uname(name);
host=gethostbyname(name->nodename);
for(int i=0;Host->Host->h_addr_list[i];i++)
ip=inet_ntoa(*((struct in_addr* )Host->h_addr_list[i]));
|
jzyhummel(风之克利斯) 的方法应该可以的
其实Sunvan()和jzyhummel(风之克利斯)思路都一样,先获得主机名,再通过主机名获得IP
不同的是:
uname()获得详细的主机信息(包括主机名),而gethostname()只是得到主机名
然后都通过gethostbyname()来获得IP
其实Sunvan()和jzyhummel(风之克利斯)思路都一样,先获得主机名,再通过主机名获得IP
不同的是:
uname()获得详细的主机信息(包括主机名),而gethostname()只是得到主机名
然后都通过gethostbyname()来获得IP