您的位置:首页 > 编程语言 > C语言/C++

WINDOWS下C++通过域名获取IP地址

2013-12-30 19:54 1221 查看
前段时间有需要通过域名获取IP地址,有用到Winsock API函数,总结如下:

注意

使用winsock的程序在使用Socket之前必须调用WSAStartup函数对winsock服务进行初始化。

函数解释

int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData );

⑴ wVersionRequested:一个WORD(双字节)型数值,在最高版本的Windows Sockets支持调用者使用,高阶字节指定小版本(修订本)号,低位字节指定主版本号。

⑵lpWSAData 指向WSADATA数据结构的指针,用来接收Windows
Sockets实现的细节。

WindowsSockets
API提供的调用方可使用的最高版本号。高位字节指出副版本(修正)号,低位字节指明主版本号。

VS2005下,代码实现

#include <iostream>

#include<WINSOCK2.H>

#pragma comment(lib,"WS2_32.LIB")

using namespace std;

void main()

{
WSAData wsa;
WSAStartup(MAKEWORD(2,2),&wsa);
hostent *phst=gethostbyname("www.baidu.com");
in_addr * iddr=(in_addr*)phst->h_addr;
unsigned long IPUL=iddr->s_addr;
char *IP=inet_ntoa(*iddr);
cout<<IP;

while(1)
{
Sleep(100);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息