0

我正在使用“ifconfig eth0:1 192.168.3.1 netmask 255.255.255.0”在 eth0 上设置别名 IP。但是有一个错误弹出窗口:SIOCSIFFLAGS:无法分配请求的地址 SIOCSFNETMASK:无法分配请求的地址

ifconfig 的版本是:net-tools 1.60 ifconfig 1.42 (2001-04-13)

该错误是由 ifconfig 源代码中的 ioctl() 函数引起的: /* 设置某个接口标志。*/ static int set_flag(char *ifname, short flag) { struct ifreq ifr;

safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
fprintf(stderr, _("%s: unknown interface: %s\n"), 
    ifname, strerror(errno));
return (-1);
}
safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
ifr.ifr_flags |= flag;
**if (ioctl(skfd, SIOCSIFFLAGS, &ifr) < 0) {
perror("SIOCSIFFLAGS");
return -1;
}**
return (0);

}

我的问题是,谁能帮助解释为什么 ioctl(skfd, SIOCSIFFLAGS, &ifr) 返回无法分配请求的地址 (errno=99)

4

1 回答 1

0

虽然没有人回答这个问题,但我想我已经找到了根本原因。

net\ipv4 中的 devinet.c 给了我一些信息。

于 2013-05-14T05:17:31.957 回答