全局配置自动获取ip地址(获取本机IP地址信息)
-
#include <winsock2.h>
-
#include <iostream>
-
using namespace std;
-
#pragma comment(lib, "WS2_32.lib")
-
void getIP()
-
{
-
WSADATA WSAData; //WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。
-
if (WSAStartup(MAKEWORD(2, 0),&WSAData)) // 初始化Windows sockets API
-
{
-
printf("WSAStartup failed %s\n", WSAGetLastError());
-
exit(-1); //异常退出
-
}
-
char hostName[256];
-
if(gethostname(hostName,sizeof(hostName))) //获取主机名
-
{
-
printf("Error: %u\n", WSAGetLastError());
-
exit(-1);
-
}
-
hostent *host=gethostbyname(hostName); // 根据主机名获取主机信息(含IP)
-
if(host==NULL)
-
{
-
printf("Error: %u\n", WSAGetLastError());
-
exit(-1);
-
}
-
cout<<"正式的主机名: "<<host->h_name<<endl
-
<<"主机地址类型: "<<host->h_addrtype<<endl
-
<<"地址清单: "<<host->h_addr_list<<endl
-
<<"别名列表: "<<host->h_aliases<<endl
-
<<"地址长度: "<<host->h_length<<endl;
-
for(int i=0;host->h_addr_list[i]!=0;i )
-
{
-
cout<<"该主机IP"<<i 1<<": "<<inet_ntoa(*(struct in_addr*)*host->h_addr_list)<<endl;
-
}
-
WSACleanup();
-
}
-
int main()
-
{
-
getIP();
-
system("pause");
-
return 0;
-
}
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com