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;
}*/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM