- 论坛徽章:
- 0
|
请问如何编程来禁用网卡?
贴一下ifconfig的原码,很简单,自己看吧
- 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);
- }
- ...
- //main
- if (!strcmp(*spp, "up")) {
- goterr |= set_flag(ifr.ifr_name, (IFF_UP | IFF_RUNNING));
- spp++;
- continue;
- }
- if (!strcmp(*spp, "down")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_UP);
- spp++;
- continue;
复制代码 |
|