struct ifreq 结构体
来源:互联网 发布:大学有linux课程吗 编辑:程序博客网 时间:2024/05/21 11:31
结构原型:
/*
* Interface request structure used for socket
* ioctl's. All interface ioctl's must have parameter
* definitions which begin with ifr_name. The
* remainder may be interface specific.
*/
struct ifreq
{
#define IFHWADDRLEN 6
union
{
char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */
} ifr_ifrn;
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
struct sockaddr ifru_broadaddr;
struct sockaddr ifru_netmask;
struct sockaddr ifru_hwaddr;
short ifru_flags;
int ifru_ivalue;
int ifru_mtu;
struct ifmap ifru_map;
char ifru_slave[IFNAMSIZ]; /* Just fits the size */
char ifru_newname[IFNAMSIZ];
void __user * ifru_data;
struct if_settings ifru_settings;
} ifr_ifru;
};
#define ifr_name ifr_ifrn.ifrn_name /* interface name */
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
#define ifr_addr ifr_ifru.ifru_addr /* address */
#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-p lnk */
#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */
#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */
#define ifr_flags ifr_ifru.ifru_flags /* flags */
#define ifr_metric ifr_ifru.ifru_ivalue /* metric */
#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */
#define ifr_map ifr_ifru.ifru_map /* device map */
#define ifr_slave ifr_ifru.ifru_slave /* slave device */
#define ifr_data ifr_ifru.ifru_data /* for use by interface */
#define ifr_ifindex ifr_ifru.ifru_ivalue /* interface index */
#define ifr_bandwidth ifr_ifru.ifru_ivalue /* link bandwidth */
#define ifr_qlen ifr_ifru.ifru_ivalue /* Queue length */
#define ifr_newname ifr_ifru.ifru_newname /* New name */
#define ifr_settings ifr_ifru.ifru_settings /* Device/proto settings*/
基本介绍:
ifreq结构定义在/usr/include/net/if.h,用来配置ip地址,激活接口,配置MTU等接口信息的。其中包含了一个接口的名字和具体内容——(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。ifreq包含在ifconf结构中。而ifconf结构通常是用来保存所有接口的信息的。
举例说明:
在Linux系统中,ifconfig命令是通过ioctl接口与内核通信,例如,当系统管理员输入如下命令来改变接口eth0的MTU大小:
ifconfig eth0 mtu 1250
ifconfig命令首先打开一个socket,然后通过系统管理员输入的参数初始化一个数据结构,并通过ioctl调用将数据传送到内核。SIOCSIFMTU是命令标识符。
struct ifreq data;
fd = socket(PF_INET, SOCK_DGRAM, 0);
< ... initialize "data" ...>
err = ioctl(fd, SIOCSIFMTU, &data);
- struct ifreq 结构体
- struct ifreq 结构体
- struct ifreq结构体与ip,子网掩码,网关等信息
- struct ifreq结构体与ip,子网掩码,网关等信息
- ifreq结构体 说明
- 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
- 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
- struct ifreq
- struct ifreq
- struct ifreq
- struct ifreq
- 五十九 struct ifreq结构体与ip,子网掩码,网关等信息
- ioctl和struct ifreq
- ioctl和struct ifreq
- ioctl struct ifreq
- ioctl和struct ifreq
- ioctl和struct ifreq
- ioctl和struct ifreq
- 【斯坦纳树】 HDOJ 4085 Peach Blossom Spring
- jQuery Easing 动画效果扩展
- SQL Sever资源整合
- POJ 2586 Y2K Accounting Bug
- java 获取字体宽度
- struct ifreq 结构体
- 区间内素数的个数
- PHP +fopen 显示图片
- Json系列之五 揭开JsonConfig的神秘面纱 json to java
- Maven依赖
- C# 生成语音文件
- mysql安装和使用
- JAVA知识点总结(八)calendar类及Math-random类
- Android4.4 wpa_supplicant深入分析之初识wpa_supplicant