假设我的主机有多个IP,我怎么知道有多少个,怎么编程找到他们的
假设我的主机有多个ip,我怎么知道有多少个,怎么编程找到他们的
推荐阅读
gethostname();
gethostbyname();
可以判断!
iphlp api
gethostbyname()获得hostent 指针,其中有一个ip的列表,检查之即可!!
给你一个例子:
#include "stdio.h"
#include "stdlib.h"
#include "winsock2.h"
int main()
{
char localhostname[250]={0};
struct hostent *hp;
struct sockaddr_in sin;
wsadata wsadata;
int i=0;
if(wsastartup(0x0202,&wsadata)!=0){
printf("wsastartup() failed!\n");
return 0;
}
if(gethostname(localhostname,sizeof(localhostname))==socket_error)
printf("error %d\n",getlasterror);
hp=gethostbyname(localhostname);
printf("host name is: %s\n",localhostname);
while(hp->h_addr_list[i])
{
copymemory(&sin.sin_addr,hp->h_addr_list[i],hp->h_length);
printf("host ip is: %s\n",inet_ntoa(sin.sin_addr));
i++;
}
wsacleanup();
return 0;
}


讨论区