首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Win32网络API获取基于计算机名的本地机器IP地址

问利用Win32网络API获取基于计算机名的本地机器IP地址
EN

Stack Overflow用户
提问于 2011-01-12 01:57:31
回答 2查看 5.9K关注 0票数 0

我正在查找http://www.codeproject.com/KB/cs/network.aspx (如何获取机器的IP地址),其中提到“在Win32 API中,这可以使用NetWork API完成”。

为了找到机器的IP地址,我希望使用C++来使用这个API。我在网络上有本地计算机的名字。我试过在MSDN上查找它,但只找到了“网络管理”API,而且它似乎没有我所需要的功能。我假设我可以用胜利袜子来解决这个问题,但这似乎是一项很大的工作,一些应该是简单的事情。

任何帮助都很感激。

编辑:应该提到我说的是本地IP地址,而不是外部IP地址。

EN

回答 2

Stack Overflow用户

发布于 2011-01-12 02:08:59

您可以使用gethostbyname函数

检查这个样本

代码语言:javascript
复制
#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" ) ;
}
票数 3
EN

Stack Overflow用户

发布于 2011-01-12 16:55:36

您可以在本地使用GetAdapterAddresses在IP帮助API中执行此操作。

GetAdaptersAddresses函数检索与本地计算机上的适配器关联的地址。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4664699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档