getifaddrs()和struct ifaddrs的使用,获取本机IP
来源:互联网 发布:图书出版的软件 编辑:程序博客网 时间:2024/06/06 04:38
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地址。
- 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和计算机名的方法
- 判断当前网络是否存在
- 利用Object的wait、notify来实现线程同步原理,Thread t1 = new Thread(new Runnable() {
- 在C语言中使用位带操作
- ASI POST上传图片
- 判断网络是否连接正常
- getifaddrs()和struct ifaddrs的使用,获取本机IP
- 获取的是开机后WIFI,3G/GPRS网络下使用流量
- 能够检测iOS的WIFI,3G以及GPS的流量。
- 网络编程之POST方法
- 个人让他以后粉丝团
- iOS实现在后台播放音乐
- 获取下拉列表中的属性值
- 播放简短的音乐
- 如何判断设备处于静音模式