VC++如何获取本机的IP地址?

如题,如何在VC++6.0中获取本机的IP地址?
2024-12-20 00:10:06
推荐回答(5个)
回答1:

获取本机ip实现过程:

  • WSAStartup()。Windows Sockets Asynchronous的启动命令,Windows下的网络编程必须先启用本命令,不然,后续的操作都会报错:10093:WSAStartup() 调用未成功执行过。

  • gethostname()获得本机名

  • gethostbyname()获得本机网络信息,存储到struct hostent *指针中,返回给调用者

  • 从struct hostent结构体信息中,获取ip地址,转换成字符串输出

参考代码 :

#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
WSADATA wsaData;
char name[155];
char *ip;
PHOSTENT hostinfo;
if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
printf("hostname=%s\n", name );
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list); //得到地址字符串
printf("local host ip: %s\n",ip);
}
}
WSACleanup( );
}
return 0;
}

回答2:

先用gethostname()获取本机的主机名,再用gethostbyname()获取IP。
这两个函数用法可以参考MSDN:
http://msdn.microsoft.com/en-us/library/ms738527(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms738524(VS.85).aspx

回答3:

#include
int main()
{
system("ipconfig");
system("pause");
return 0;
}

回答4:

system("ipconfig");

记得添加stdlib.h的库

回答5:

iphlpapi.h里有常用网络操作函数