我正在查找http://www.codeproject.com/KB/cs/network.aspx (如何获取机器的IP地址),其中提到“在Win32 API中,这可以使用NetWork API完成”。
为了找到机器的IP地址,我希望使用C++来使用这个API。我在网络上有本地计算机的名字。我试过在MSDN上查找它,但只找到了“网络管理”API,而且它似乎没有我所需要的功能。我假设我可以用胜利袜子来解决这个问题,但这似乎是一项很大的工作,一些应该是简单的事情。
任何帮助都很感激。
编辑:应该提到我说的是本地IP地址,而不是外部IP地址。
发布于 2011-01-12 02:08:59
您可以使用gethostbyname函数
检查这个样本
#include <netdb.h>
#include <arpa/inet.h>
#include <iostream>
int main()
{
const char* const host = "thecomputername" ;
const hostent* host_info = 0 ;
host_info = gethostbyname(host) ;
if(host_info)
{
std::cout << "host: " << host_info->h_name << '\n' ;
for( int i=0 ; host_info->h_addr_list[i] ; ++i )
{
const in_addr* address = (in_addr*)host_info->h_addr_list[i] ;
std::cout << " address: " << inet_ntoa( *address ) << '\n' ;
}
}
else herror( "error" ) ;
}发布于 2011-01-12 16:55:36
您可以在本地使用GetAdapterAddresses在IP帮助API中执行此操作。
GetAdaptersAddresses函数检索与本地计算机上的适配器关联的地址。
https://stackoverflow.com/questions/4664699
复制相似问题