windows下获取本地ip地址
时间: 2024-10-28 07:06:26 浏览: 26
在Windows操作系统下,可以使用多种方法来获取本地IP地址。以下是一种基于C++的方法,使用了Windows API中的GetAdaptersInfo函数:
1. 首先包含必要的头文件:
```cpp
#include <windows.h>
#include <iphlpapi.h>
#include <tchar.h>
```
2. 定义获取IP信息的函数:
```cpp
std::vector<std::string> GetLocalIPAddress()
{
std::vector<std::string> addresses;
PIP_ADAPTER_INFO adapter_info = nullptr;
ULONG length = 0;
DWORD error = GetAdaptersInfo(&adapter_info, &length);
if (error != ERROR_SUCCESS)
{
// 处理错误...
return addresses;
}
if (!adapter_info)
{
length = sizeof(IP_ADAPTER_INFO);
adapter_info = (PIP_ADAPTER_INFO)malloc(length);
if (!adapter_info)
{
// 内存分配失败...
free(adapter_info);
return addresses;
}
}
for (PIP_ADAPTER_INFO current = adapter_info; current != nullptr; current = current->Next)
{
if (current->OperationalStatus == IfOperStatusUp && current->IfType == IF_TYPE_IPv4)
{
std::string ip_address = inet_ntoa(current->Address);
addresses.push_back(ip_address);
}
}
free(adapter_info);
return addresses;
}
```
这个函数会返回一个包含了所有IPv4活动适配器的IP地址的向量。
阅读全文