Chinaunix
标题:
在LINUX下有没有哪个函数可以设置网卡模式
[打印本页]
作者:
xjtuguochen
时间:
2005-05-15 14:55
标题:
在LINUX下有没有哪个函数可以设置网卡模式
我想把网卡设置成混杂模式
作者:
win_hate
时间:
2005-05-15 15:43
标题:
在LINUX下有没有哪个函数可以设置网卡模式
ioctl
测试:
#include <stdio.h>;
#include <net/if.h>;
#include <sys/socket.h>;
#include <sys/raw.h>;
#include <sys/ioctl.h>;
int
main ()
{
int fd;
struct ifreq ifr;
char *dev;
dev="eth0";
fd = socket (PF_INET, SOCK_DGRAM, 0);
strncpy ((char *)ifr.ifr_name, dev, sizeof(ifr.ifr_name));
ioctl (fd, SIOCGIFFLAGS, &ifr);
if (ifr.ifr_flags & IFF_PROMISC)
printf ("%s\n", "promisc on");
else
printf ("%s\n", "promisc off");
}
复制代码
打开:
#include <stdio.h>;
#include <net/if.h>;
#include <sys/socket.h>;
#include <sys/raw.h>;
#include <sys/ioctl.h>;
int
main ()
{
int fd;
struct ifreq ifr;
char *dev;
dev="eth0";
fd = socket (PF_INET, SOCK_DGRAM, 0);
strncpy ((char *)ifr.ifr_name, dev, sizeof(ifr.ifr_name));
ioctl (fd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= IFF_PROMISC;
ioctl (fd, SIOCSIFFLAGS, &ifr);
}
复制代码
关闭:
#include <stdio.h>;
#include <sys/ioctl.h>;
#include <net/if.h>;
#include <sys/socket.h>;
#include <sys/raw.h>;
int
main ()
{
int fd;
struct ifreq ifr;
char *dev;
dev="eth0";
fd = socket (PF_INET, SOCK_DGRAM, 0);
strncpy ((char *)ifr.ifr_name, dev, sizeof(ifr.ifr_name));
ioctl (fd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags &= ~IFF_PROMISC;
ioctl (fd, SIOCSIFFLAGS, &ifr);
}
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2