socket 编程获取本机及域名ip地址
#include <stdio.h>
#include <winsock2.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int ip(char name[],int a)
{
int iResult;
WSADATA wsaData;
WORD v=MAKEWORD(2,2);
iResult=WSAStartup(v,&wsaData);
if(iResult!=0)
{
printf("WSAStartup failed: %d\n",iResult);
return -1;
} //套接字初始化
int i=0;
if(a==1)
{
printf("本机ip\n");
gethostname(name,sizeof(name));
}
// printf("主机名:%s\n\n",name);//获取主机名
struct hostent *host=gethostbyname(name);
for(i=0;host!=NULL&&host->h_addr_list[i]!=NULL;i++)
{
char *p=inet_ntoa(*(struct in_addr *)host->h_addr_list[i]);
printf("h_name:%s\n",host->h_name);
printf("IP Address #[%d]:%s\n",i+1,p); //获取全部ip
}
iResult=WSACleanup();
if(iResult!=0)
{
printf("WSACleanup failed: %d\n",iResult);
return -1;
} //套接字释放
}
int main()
{
char namehost[200];
int i;
ip("",1);
printf("\n请输入域名:");
scanf("%s",namehost);
ip(namehost,2);
return 0;
}
/*int main(int argc, char *argv[]) {
return 0;
}*/