1. 程式人生 > >Socket網路程式設計【域名解析】

Socket網路程式設計【域名解析】

//域名解析 
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")


void main()
{
//  呼叫WSAStarup初始化WINsock庫
WSADATA wsaData;
::WSAStartup(
MAKEWORD(2,2),
&wsaData);


//  輸入域名或伺服器名,例如www.xyz.com或localhost
char szHost[200];


printf("請輸入要解析的域名>");
scanf_s("%s",szHost);


//  解析域名
hostent *pHost = gethostbyname(szHost);


//  輸出(和前面的例子一樣)
in_addr addr;
int i;
for ( i = 0;; i++)
{
char *p = pHost->h_addr_list[i];
if (p == NULL)
{
break;
}
memcpy(&addr.S_un.S_addr,p,pHost->h_length);
char *strIp = ::inet_ntoa(addr);
printf("IP[%d]:%s\n",i+1,strIp);
}
::WSACleanup();
system("pause");
}