加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
net1.cc 982 Bytes
一键复制 编辑 原始数据 按行查看 历史
jin 提交于 2024-01-11 10:09 . coding
#include <iostream>
#include <cstring>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
int main() {
char hostname[256];
struct addrinfo hints, *res;
// 获取主机名
if (gethostname(hostname, sizeof(hostname)) == -1) {
perror("获取主机名失败");
return 1;
}
// 设置addrinfo结构体参数
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
// 获取IP地址
if (getaddrinfo(hostname, NULL, &hints, &res) != 0) {
perror("获取IP地址失败");
return 1;
}
// 遍历IP地址列表
for (struct addrinfo *p = res; p != NULL; p = p->ai_next) {
struct sockaddr_in *ip_addr = (struct sockaddr_in*)p->ai_addr;
char ip[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &(ip_addr->sin_addr), ip, INET_ADDRSTRLEN);
std::cout << "IP地址: " << ip << std::endl;
}
freeaddrinfo(res);
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化