用ioctl设置了网卡的ip地址和掩码后,如何激活?
来源:互联网 发布:js判断数字为整数 编辑:程序博客网 时间:2024/05/02 04:16
我在程序中用ioctl函数设置了网卡的ip地址和掩码,但是设置完成后,网络并没有激活,还是不能收发数据,但是退出程序用ifconfig-a查看,设置已经成功,然后用ifconfig激活,就可以收发数据了,请问,能不能用ioctl在设置完ip地址和掩码后,直接用ioctl激活?或者还有其他的方法在程序中直接激活网络设置?谢谢啊
system("ifconfig eth0 192.168.168.1 mask 255.255.255.0");
就可以直接激活了。
[code]
struct ifreq buf[MAXINTERFACES];
struct ifconf ifc;
int fd,intrface;
if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) >= 0) {
ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = (caddr_t) buf;
intrface = ifc.ifc_len / sizeof (struct ifreq);
printf("interface num is intrface=%d/n/n/n",intrface);
while (intrface-- > 0)
{
if (!ioctl (fd, SIOCGIFCONF, (char *) &ifc)) {
ioctl (fd, SIOCGIFFLAGS, (char *) &buf[intrface]);
if (!buf[intrface].ifr_flags & IFF_UP) {
buf[intrface].ifr_flags |=IFF_UP;
}
ioctl (fd, SIOCSIFFLAGS, (char *) &buf[intrface]);
}
close(fd);
[/code]
不用多解释了吧?
版主,你好,我不会用那些ioctl,比如:ioctl (fd, SIOCGIFCONF, (char *) &ifc)和ioctl (fd, SIOCGIFFLAGS, (char *) &buf[intrface]),你能不能解释一下?多谢。
ioctl是系统调用,用于对设备的操作,如果你了解一些驱动源码的话,应该明白。具体地说,ioctl是向内核提交一个命令,用于获取或者设置和设备相关的参数。SIOCGIFCONF是获取,SIOCSIFFLAGS是设置,看到区别了吗?
ioctl (fd, SIOCGIFFLAGS, (char *) &buf[intrface]);这句是获取设备的当前状态
buf[intrface].ifr_flags |=IFF_UP;设置激活标志
ioctl (fd, SIOCSIFFLAGS, (char *) &buf[intrface]);然后设置,很简单吧。
谢谢版主指导
- 用ioctl设置了网卡的ip地址和掩码后,如何激活?
- python 使用ioctl() 获得网卡IP 和MAC地址
- 如何给树莓派的无线网卡设置静态IP地址
- 用ioctl设置mac地址 得到当前的ip地址,子网掩码等信息
- 用ioctl设置mac地址 得到当前的ip地址,子网掩码等信息
- Python获取本机所有网卡ip,掩码和广播地址
- 识别有效的IP地址和掩码并进行分类
- socket 通过 ioctl获取 设置 网卡 IP 子网掩码 本地广播地址
- Linux修改IP地址及激活网卡
- linux下如何设置IP地址并激活
- 嵌入式 获取网卡设备以及IP和MAC地址示例以及网络编程之ioctl小结
- linux IP地址网关设置和双网卡设置
- IP Helper API 简介与设置网卡的IP地址
- 树莓派网卡和IP地址的配置
- 取得网卡的ip和mac地址
- 用ioctl获得本地ip地址,ifconf和ifreq
- ioctl 获取本机网卡ip地址 | socket()
- ioctl 获取本机网卡ip地址 | socket() 复制代码
- Java基础练习题 考试题 笔试题 面试题 (1)
- Web.config配置文件详解(新手必看)
- java与FlashSocket通信安全(转载)
- 转一文
- Datagridview 导出Excel
- 用ioctl设置了网卡的ip地址和掩码后,如何激活?
- Java基础练习题 考试题 笔试题 面试题 (2)
- 为什么大学生这么难入IT
- 二维数组的动态分配及参数传递
- ActionScript3.0 Socket编程
- 连连看
- Java基础练习题 考试题 笔试题 面试题 (3)
- 厚颜无耻
- 07-Dec-2009