Linux获取所有网口及其详细信息
来源:互联网 发布:布尔型数据两个值 编辑:程序博客网 时间:2024/06/05 03:37
获取方法:
调用getifaddrs接口来获取,调用freeifaddrs接口来释放内存
需包含:
#include <sys/types.h>#include <ifaddrs.h>
参考代码:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <ifaddrs.h>int main(int argc, char* argv[]){ struct ifaddrs *ifaddr_lst; struct ifaddrs *ifaddr_node; int family; char host[NI_MAXHOST]; if(getifaddrs(&ifaddr_lst) < 0) { perror("getifaddrs"); return -1; } for(ifaddr_node = ifaddr_lst; ifaddr_node != NULL; ifaddr_node = ifaddr_node->ifa_next) { /* ifa_addr可能为空,*/ if(NULL == ifaddr_node->ifa_addr) { continue; } struct sockaddr_in *addr = (struct sockaddr_in*)ifaddr_node->ifa_addr; family = addr->sin_family; printf("----------------------------------------\n"); printf("interface name: %s\n", ifaddr_node->ifa_name); printf("address family: %d(%s)\n", family, (family == AF_PACKET)?"AF_PACKET": (family == AF_INET)?"AF_INET": (family == AF_INET6)?"AF_INET6":""); if(family == AF_INET||family == AF_INET6) { int ret = getnameinfo(ifaddr_node->ifa_addr, (family == AF_INET)?sizeof(struct sockaddr_in):sizeof(struct sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); if( ret != 0 ) { printf("getnameinfo failed:%s\n", strerror(ret)); return -1; } printf("address: %s\n", host); } printf("----------------------------------------\n"); } freeifaddrs(ifaddr_lst); return 0;}
0 0
- Linux获取所有网口及其详细信息
- Linux 获取网口详细信息
- Linux 获取所有网口及其索引
- linux stat函数(获取文件详细信息)
- 使用 WPF 获取你电脑上所有目录的详细信息:
- 获取所有安装的apk详细信息及常规操作
- 所有文件夹 目录 详细信息
- Linux stat函数讲解(获取文件详细信息)
- Linux stat函数讲解(获取文件详细信息)
- Linux stat函数讲解(获取文件详细信息)
- linux 获取目录中详细信息 -rw-r--r--详解
- 获取系统版本详细信息
- 获取order的详细信息
- edid 获取显示器详细信息
- Android获取摄像头详细信息
- Android获取摄像头详细信息
- 获取硬盘的详细信息
- 获取系统各种详细信息
- linux tee 命令详解
- C++编译器 GCC G++ 使用
- ios远程消息推送。
- JVM原理学习笔记
- Skinned Mesh原理解析和一个最简单的实现示例 .
- Linux获取所有网口及其详细信息
- Java学习之运算符使用注意的问题
- Vijos P1344计算器的改良(java未AC,如果有神牛来帮我修改,感激不尽啊!)
- CentOS系统下强行重新修改MySQL密码
- redis keepalived
- 使用TypeScript 开发 Phaser game —— 可缩放、拖动的世界实现
- 如何在Android模拟器上安装软件?
- mount cifs出现cannot allocate memory解决方法
- 如何写出漂亮的js代码