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