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();

}

相关推荐
Hello_Embed39 分钟前
嵌入式上位机开发入门(二十二):RTU/TCP 双协议互斥访问寄存器
笔记·网络协议·tcp/ip·嵌入式
.select.1 小时前
TCP 8 (拥塞控制)
服务器·网络·tcp/ip
河阿里2 小时前
Windows批处理脚本(.bat)从零到精通:详细教程与实战案例
windows
idolao2 小时前
Android Studio 2022安装与汉化教程 Windows版:解压+管理员运行+自定义路径+SDK配置+中文插件指南
android·windows·android studio
摇滚侠2 小时前
Groovy 如何给集合中添加元素
java·开发语言·windows·python
wei_shuo2 小时前
解放双手!用Windows搭建闲鱼0成本“赚米神器”!AI客服秒回复!
人工智能·windows
洛水如云3 小时前
换新电脑数据迁移全攻略:2 种方法转移文件 / 系统
windows·microsoft·电脑
Java成神之路-4 小时前
深度解析TCP连接管理:三次握手、四次挥手与保活机制
网络·网络协议·tcp/ip
绿豆人4 小时前
RPC项目学习2
网络协议·学习·rpc
chushiyunen4 小时前
posting替换postman(好像还是不太好用)
windows