Windows下的应用程序如何获得本机IP地址

看到一些例程,使用的是winsocket,实际上我们都知道ipconfig就能完成我们的要求。IP助手API提供了类似的功能,本文用到的是GetAdaptersInfo,具体参数意义可以查MSDN。

例子如下:

//需要链接iphlpapi.lib

#include <iostream>
#include <atlstr.h>
#include <iphlpapi.h>
void GetHostIP(CString& address)
{
 ULONG len = 0; address.Empty();
 GetAdaptersInfo(NULL, &len);
 PIP_ADAPTER_INFO p = static_cast<PIP_ADAPTER_INFO>(malloc(len));
 GetAdaptersInfo(p, &len);
 for (PIP_ADAPTER_INFO q = p; q != NULL; q = q->Next)
 {
  address += q->IpAddressList.IpAddress.String;
  address += '/n';
 }
 free(p);
}

int _tmain(int argc, _TCHAR* argv[])
{
 CString address;
 GetHostIP(address);
 std::cout << address;
 return 0;
}

第一次调用,len返回需要的缓冲区长度;第二次调用得到信息。因为可能不止一块网卡,每个IP地址用换行符分隔。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值