Windows c++获取本地ip

int GetLocalIp(vector<string> &vIp)

{

WSADATA wsaData;

int iRet = WSAStartup(((2 << 8) & 0xffff) | (2 & 0xff), &wsaData);

if (iRet != 0) {

std::cerr << "WSAStartup failed: " << iRet << std::endl;

return 1;

}

// 获取本机名

char hostname[256];

int result = gethostname(hostname, sizeof(hostname));

if (result != 0) {

std::cerr << "gethostname failed: " << WSAGetLastError() << std::endl;

WSACleanup();

return 1;

}

// 获取主机信息

struct hostent* phe = gethostbyname(hostname);

if (phe == nullptr) {

std::cerr << "gethostbyname failed: " << WSAGetLastError() << std::endl;

WSACleanup();

return 1;

}

// 遍历所有的IP地址

for (int i = 0; phe->h_addr_list[i] != 0; ++i) {

struct in_addr addr;

memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));

vIp.push_back(inet_ntoa(addr));

std::cout << "Local IP " << i + 1 << ": " << inet_ntoa(addr) << std::endl;

}

WSACleanup();

}

相关推荐
重启的码农1 小时前
enet源码解析 (2) 对等节点 (ENetPeer)
c++·网络协议
发光小北2 小时前
SG-TCP-COE-210(Modbus TCP 转 CANOpen 网关)
网络·网络协议·tcp/ip
路由侠内网穿透.2 小时前
外部访问 Python 搭建的 HTTP 服务器
运维·服务器·网络·网络协议·http·远程工作
charlie1145141912 小时前
勇闯前后端Week2:后端基础——HTTP与REST
开发语言·网络·笔记·网络协议·学习·http
陈橘又青3 小时前
CANN在智能安防场景中的落地实践:释放硬件潜能,简化AI开发
人工智能·网络协议·学习·ai·编辑器
Xiaomostream4 小时前
实现TCP服务器:一请求一线程 | epoll
服务器·网络协议·tcp/ip
低调波5 小时前
springboot实现批量下载
windows·spring boot·后端
大、男人15 小时前
目标URL存在http host头攻击漏洞
网络·网络协议·http
运维行者_16 小时前
网站出现 525 错误(SSL 握手失败)修复指南
服务器·网络·数据库·redis·网络协议·bootstrap·ssl
q***37517 小时前
Nginx如何实现 TCP和UDP代理?
tcp/ip·nginx·udp