getifaddrs()和struct ifaddrs的使用,获取本机IP
来源:互联网 发布:矩阵计算 戈卢布 pdf 编辑:程序博客网 时间:2024/05/22 02:28
ifaddrs结构体定义如下:
- struct ifaddrs
- {
- struct ifaddrs *ifa_next; /* Next item in list */
- char *ifa_name; /* Name of interface */
- unsigned int ifa_flags; /* Flags from SIOCGIFFLAGS */
- struct sockaddr *ifa_addr; /* Address of interface */
- struct sockaddr *ifa_netmask; /* Netmask of interface */
- union
- {
- struct sockaddr *ifu_broadaddr; /* Broadcast address of interface */
- struct sockaddr *ifu_dstaddr; /* Point-to-point destination address */
- } ifa_ifu;
- #define ifa_broadaddr ifa_ifu.ifu_broadaddr
- #define ifa_dstaddr ifa_ifu.ifu_dstaddr
- void *ifa_data; /* Address-specific data */
- };
ifa_next指向链表的下一个成员;ifa_name是接口名称,以0结尾的字符串,比如eth0,lo;ifa_flags是接口的标识位(比如当IFF_BROADCAST或IFF_POINTOPOINT设置到此标识位时,影响联合体变量ifu_broadaddr存储广播地址或ifu_dstaddr记录点对点地址);ifa_netmask存储该接口的子网掩码;结构体变量存储广播地址或点对点地址(见括弧介绍ifa_flags);ifa_data存储了该接口协议族的特殊信息,它通常是NULL(一般不关注他)。
函数getifaddrs(int getifaddrs (struct ifaddrs **__ifap))获取本地网络接口信息,将之存储于链表中,链表头结点指针存储于__ifap中带回,函数执行成功返回0,失败返回-1,且为errno赋值。
很显然,函数getifaddrs用于获取本机接口信息,比如最典型的获取本机IP地址。
0 0
- getifaddrs()和struct ifaddrs的使用,获取本机IP
- getifaddrs()和struct ifaddrs的使用,获取本机IP
- getifaddrs()和struct ifaddrs的使用,获取本机IP
- 关于getifaddrs()和struct ifaddrs的说明
- 关于getifaddrs()和struct ifaddrs的说明
- 关于getifaddrs()和struct ifaddrs的说明
- Linxu的struct ifaddrs 与getifaddrs()函数
- linux获取本机IP地址的方法 struct ifconf
- 获取本机的域名和ip
- Linux下获取本地IP地址--------getifaddrs
- Linux下获取本地IP地址--------getifaddrs
- Linux下获取本地IP地址--------getifaddrs
- 获取本机IP和使用log打印日志
- 获取本机的IP
- 使用IP Helper获取本机的网络参数
- 使用UDP的connect获取本机IP
- 获取本机主机名和IP的方法
- BCB获取本机IP和计算机名的方法
- html 前台通用表单
- 医调项目之C# 服务端与客户端JS通讯数据加密
- 获取 磁盘空间、文件夹等大小
- 无法打开包括文件:“afxcontrolbars.h”
- 特权级变换中调用门的学习
- getifaddrs()和struct ifaddrs的使用,获取本机IP
- Win7 发布站点 HTTP 错误 404.4 - Not Found
- 借力酷详细介绍
- RPC协议
- iOS运行出现No application was specified.
- java 线程泄露、周期任务(读书)检查异常和未检查异常
- JAVA命名规则
- php模块memcache和memcached区别分析
- The Triangle - POJ 1163 水题