SIOCGIFFLAGS, SIOCSIFFLAGS

ioctl函数的SIOCGIFFLAGS和SIOCSIFFLAG 其中,socket_fd是已打开的套接字文件描述符,ifr是ifreq结构体类型的变量,该结构体包含了要操作的网络接口的名称。如果该操作成功,ifr结构体中的if_flags成员将包含接口的标志。是ifreq结构体类型的变量,该结构体包含了要操作的网络接口的名称和要设置的标志。如果该操作成功,接口的标志将被设置为if_flags成员中指定的值。S是指socket,IO是指input/output,CG是指get,CS是指set,IFFLAGS是指interface flags,因此。 阅读详情
SIOCGIFFLAGSSIOCSIFFLAGS
读取 或 设置 设备的 活动标志字. ifr_flags 包含 下列值 的 屏蔽位:

设备标志
IFF_UP接口正在运行.
IFF_BROADCAST有效的广播地址集.
IFF_DEBUG内部调试标志.
IFF_LOOPBACK这是自环接口.
IFF_POINTOPOINT这是点到点的链路接口.
IFF_RUNNING资源已分配.
IFF_NOARP无arp协议, 没有设置第二层目的地址.
IFF_PROMISC接口为杂凑(promiscuous)模式.
IFF_NOTRAILERS避免使用trailer .
IFF_ALLMULTI接收所有组播(multicast)报文.
IFF_MASTER主负载平衡群(bundle).
IFF_SLAVE从负载平衡群(bundle).
IFF_MULTICAST支持组播(multicast).
IFF_PORTSEL可以通过ifmap选择介质(media)类型.
IFF_AUTOMEDIA自动选择介质.
IFF_DYNAMIC接口关闭时丢弃地址.
TCP/IP实现(四) IP编址 一.IP地址         一个IP地址是被指派给一个系统中的网络接口的而不是系统本身,就如在《TCP/IP实现(二) 接口层数据结构》中描述的那样,每一个用于存储IP协议地址信息的in_ifaddr结构都和一个描述接口信息的ifnet(或者是他的专用化)相关联。         IPv4地址分为5类:                                            ... 阅读详情

相关推荐

Linux协议栈代码阅读笔记(二)网络接口的配置

Linux协议栈代码阅读笔记(二)网络接口的配置 (基于linux-2.6.11) (一)用户态通过C库函数ioctl进行网络接口的配置 例如,知名的ifconfig程序,就是通过C库函数sys_ioctl实现网络接口的配置的。 具体方法大致如下,即建立一个socket,得到一个fd,然后在此fd上执行ioctl即可完成各种操作(例如,查询/配置mac、ip、mtu,启动/停止网络接口)。

无忧老猪 2333

c++ socket启动网卡接口

//启动网卡接口 int SetEtherStatusUP(const char *ethNum) { struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Create socket fails!\n"); return -1; } strcpy(ifr.ifr_name, ethNum); if (ioctl(sockfd, SIOCGIFFLAGS, &amp.

phymat.nico的专栏 525

2021-07-17

解决 ifconfig: SIOCSIFFLAGS: No such device 使用yaffs2文件系统时候,出现上述字符 出现这个的原因是内核没有编译进去DM9000网卡的支持:编辑 ifconfig eth0 192.168.XXX.XXX 或者 ifconfig eth0 up 前提是你的内核需要移植好网卡驱动。根据ifconfig: SIOCGIFFLAGS: No such device。可以看出你现在烧写的内核没有移植好网卡驱动。 问题解决 在内核中: 移植DM9000网卡驱动 之前配置使

send_mo的博客 2874

linux c设置/获取网卡参数

依据SIOCSIFFLAGS 见glibc源码: glibc\sysdeps\mach\hurd\bits\ioctls.h /* socket i/o controls */ #define SIOCADDRT _IOW('r', 10, struct ortentry) /* add route */ #define SIOCDELRT _IOW('r', 11, struct ortentr...

@角色扮演# 1432

使用socket传字符串问题

https://bbs.csdn.net/topics/370190771 SIOCGIFFLAGS, SIOCSIFFLAGS https://blog.csdn.net/eager7/article/details/8516470 https://www.jianshu.com/p/3a9a0232a272 Linux下利用signal函数处理ctrl+c等信号 h...

liangtianmeng的专栏 430

Linux下使用混杂模式抓包

有时候不光要抓自己的包,还要抓目的地址不是本机地址的包,既是过路包,这时候就要将监听网卡设为混在模式 这里新添了头文件: net/if.h&nbsp; 定义了ifreq的结构体,既是接口(interface)的信息头文件。 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

p=f/s 2537

linux socket 混杂模式,Python套接字:在Linux中启用混杂模式

使用AF_NETLINK套接字发出打开IFF_PROMISC的请求. Python可以在Linux上构建AF_NETLINK套接字:>>> from socket import AF_NETLINK, SOCK_DGRAM, socket>>> s = socket(AF_NETLINK, SOCK_DGRAM)>>>有关如何发出netlink...

weixin_36462387的博客 365

netdevice - 底层访问 Linux 网络设备

总览 (SYNOPSIS) #include <sys/ioctl.h> #include <net/if.h> 描述 (DESCRIPTION) 本手册 描述 用于 配置 网络设备 的 套接字(socket) 接口. Linux 支持 一些 配置 网络设备 的 标准 ioctl. 他们 用于 任意的 套接字 描述符, 而 无须 了解 其 类型 或 系...

weixin_30715523的博客 284

用ioctl设置了网卡的ip地址和掩码后,如何激活?

请问用ioctl设置了网卡的ip地址和掩码后,如何激活?我在程序中用ioctl函数设置了网卡的ip地址和掩码,但是设置完成后,网络并没有激活,还是不能收发数据,但是退出程序用ifconfig-a查看,设置已经成功,然后用ifconfig激活,就可以收发数据了,请问,能不能用ioctl在设置完ip地址和掩码后,直接用ioctl激活?或者还有其他的方法在程序中直接激活网络设置?谢谢啊 morn

JINKAI 2852

控制网卡打开和关闭的C代码

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static int clr_flag

王以山的专栏 2443

Linux下ipconfig分析及C语言实现

在linux下使用ifconfigl命令能很方便的查看网卡与网线是否连通,运行ifconfig eth0命令大致输出如下:# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:25:35:68:CC:D6 inet addr:192.168.1.168 Bcast:192.168.1.255 Mask:255.

张勤一 3053

混杂模式概念

一、混杂模式 1、指一台机器的网卡能够接收所以经过它的数据包,而不论其目的地址是否是它 2、一般计算机网卡都工作在非混杂模式下,如果设置网卡为混杂模式需要root权限。 二、Linux下设置 1、设置混杂模式 ifconfig eth0 promisc 2、取消混杂模式 ifconfig etho -promisc 三、Linux下通过程序设置网卡混杂模式 struct ifreq ethreq; strncpy(ethreq.ifr_name, "eth0", IFNAMSIZ); if(ioctl(s

PPPPPPPKD的博客 1013

linux网络编程中遇到的ioctl中的标志

struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET */ u_int16_t sin_port; /* port in network byte order */ struct in_addr sin_addr; /* internet address */};struc

wl_haanel的专栏 9541

ioctl实现网卡的开关

用ioctl实现打开和关闭网卡 //启动网卡接口 int SetEtherStatusUP(const char *ethNum) { struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) &lt; 0) { printf("Create socket fails!\n"); retur...

zpzkitt的专栏 3892

linux网卡混杂模式重启生效,linux下网卡混杂模式设置与恢复

网卡混杂模式的设置可以通过下面的命令来进行设置:root@dell-desktop:/home/dell/libppf/bin# ifconfig eth0eth0 Link encap:Ethernet HWaddr 00:1e:4f:e7:81:16inet addr:10.0.16.111 Bcast:10.255.255.255 Mask:255.0.0.0inet6 addr: fe80...

weixin_39612499的博客 907

用户空间获取eth0开关状态和开关实现

用户空间获取eth0开关状态和开关实现 开关的实现与ifconfig eth0 dow/up 相同 获取状态 int get_eth0_status() { struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("

风之伤 1630
上一篇: 跟一下wpa_supplicant(1) 初始化
下一篇: 跟一下wpa_supplicant(2) wifi enable
eager7
博客等级 码龄16年 158粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值