Linux中ifreq 结构体分析和使用

转载 2016年08月30日 16:18:15

struct ifreq
{
#define IFHWADDRLEN 6
 union
 {
  char ifrn_name[IFNAMSIZ];  
 } 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]; 
  char ifru_newname[IFNAMSIZ];
  void __user * ifru_data;
  struct if_settings ifru_settings;
 } ifr_ifru;
};

#define ifr_name ifr_ifrn.ifrn_name 
#define ifr_hwaddr ifr_ifru.ifru_hwaddr 
#define ifr_addr ifr_ifru.ifru_addr 
#define ifr_dstaddr ifr_ifru.ifru_dstaddr 
#define ifr_broadaddr ifr_ifru.ifru_broadaddr 
#define ifr_netmask ifr_ifru.ifru_netmask 
#define ifr_flags ifr_ifru.ifru_flags 
#define ifr_metric ifr_ifru.ifru_ivalue 
#define ifr_mtu  ifr_ifru.ifru_mtu 
#define ifr_map  ifr_ifru.ifru_map 
#define ifr_slave ifr_ifru.ifru_slave 
#define ifr_data ifr_ifru.ifru_data 
#define ifr_ifindex ifr_ifru.ifru_ivalue 
#define ifr_bandwidth ifr_ifru.ifru_ivalue    
#define ifr_qlen ifr_ifru.ifru_ivalue 
#define ifr_newname ifr_ifru.ifru_newname 
#define ifr_settings ifr_ifru.ifru_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_INETSOCK_DGRAM, 0);
    < ... initialize "data" ...>
    err = ioctl(fd, SIOCSIFMTU, &data);


来源:http://blog.csdn.net/zhu114wei/article/details/6927513

struct ifconf和struct ifreq,获取网线插入状态

这两天看用C获取当前网口的插入网线状态的程序,遇见了这两个不熟悉的结构体,看了头文件中的说明和详细。 struct ifreq 这个结构定义在include/net/if.h,用来配置ip地址,激...

struct ifreq学习和实例

一、struct ifreq结构体 这个结构定义在/usr/include/net/if.h,用来配置和获取ip地址,掩码,MTU等接口信息的。 /* Interface reques...

《Linux网络接口》---------struct ifreq struct ifconf

网络接口--------------struct ifconf,struct ifreq   网络相关的ioctl请求的request参数及arg地址必须指向的数据类型如下表所示: ...

Linux中ifreq 结构体分析和使用

结构原型: /*  * Interface request structure used for socket  * ioctl's.  All interface ioctl's must h...

Linux中ifreq 结构体分析和使用(转)

Linux中ifreq 结构体分析和使用(转)  (2012-08-13 09:27:10) 转载▼ 标签:  it 分类: socket ...
  • I_feige
  • I_feige
  • 2016年11月24日 19:20
  • 411

Linux中ifreq 结构体分析和使用

结构原型: /*  * Interface request structure used for socket  * ioctl's.  All interface ioctl's must...

获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf

转载请注明出处:windeal专栏 Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq  结构体struct ifconf来获取网络接口的各种信息。 io...
  • Windeal
  • Windeal
  • 2014年09月16日 17:57
  • 8690

获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf

转载自: 点击打开链接 linux下 可以使用ioctl()函数 以及 结构体 struct ifreq  结构体struct ifconf来获取网络接口的各种信息。 ioctl 首先...

struct ifreq结构体与ip,子网掩码,网关等信息

总结一下,今天学习的关于通过socket,ioctl来获得ip,netmask等信息,其中很多内容参照了很多网上的信息,我会一一列出的 我用的这个函数,就是下面这个函数,其中的有一些全局变量,很好懂,...

struct ifreq结构体与ip,子网掩码,网关等信息

一、涉及的知识点 1.struct ifreq {     char ifr_name[IFNAMSIZ];      union       {         struct sockad...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux中ifreq 结构体分析和使用
举报原因:
原因补充:

(最多只允许输入30个字)