socket 编程获取本机及域名ip地址

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;
}*/
posted @ 2019-09-11 16:03  Juicef  阅读(3268)  评论(0编辑  收藏  举报