还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

C++ 通过主机名/域名获取IP

来源:清泛原创     2016-11-08 17:03:25    人气:     我有话说( 0 人参与)

代码如下:#include <winsock2.h> 该头文件定义了Socket编程的功能 #pragma comment(lib,"ws2_32.lib") 连接ws2_32.lib库...

代码如下:
#include <winsock2.h> //该头文件定义了Socket编程的功能
#pragma comment(lib,"ws2_32.lib")    //连接ws2_32.lib库.只要程序中用到Winsock API 函数,都要用到 Ws2_32.lib  

void GetHostIP(char *szIPAddr)
{
	WSADATA wsaData;
	char name[155];      //定义用于存放获得主机名的变量
	char *ip;            //定义IP地址变量
	PHOSTENT hostinfo;

	//调用MAKEWORD()获得Winsocl版本的正确值,用于下面的加载Winscok库
	if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) 
	{   //加载Winsock库,如果WSAStartup()函数返回值为0,说明加载成功,程序可以继续往下执行
		if( gethostname ( name, sizeof(name)) == 0) 
		{ //如果成功,将本地主机名存放入由name参数指定的缓冲区中
			if((hostinfo = gethostbyname(name)) != NULL) 
			{ //这是获取主机,如果获得主机名成功的话,将返回一个指针,指向hostinfo,hostinfo为PHOSTENT型的变量。
				ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list); 
				//inet_addr()函数把地址串转换为IP地址
				//调用inet_ntoa()函数,将hostinfo结构变量中的h_addr_list转化为标准的IP地址(如202.197.11.12.) 
				//printf(" IP地址: %s/n",ip);        //输出IP地址
				sprintf(szIPAddr,"%s",ip);
			} 
		}
		WSACleanup();         //卸载Winsock库,并释放所有资源
	}
}
不解释^_^。

C++ 主机名 域名 获取IP

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: