请问windows编程怎么把网卡设置混杂模式??? 请问windows编程怎么把网卡设置混杂模式??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ...ifr.ifr_flags |= IFF_PROMISC;ioctl(sock, SIOCSIFFLAGS, &ifr);... bool SetAdapterReceiveAll(){ WORD ver=MAKEWORD(2,2); WSADATA wsaData; WSAStartup(ver,&wsaData); s=socket(AF_INET,SOCK_RAW,IPPROTO_RAW); BOOL bFlag=TRUE; int err=setsockopt(s,IPPROTO_IP,IP_HDRINCL,(char *)&bFlag,sizeof(bFlag)); if(err!=0) return false; char hostname[256]; memset(hostname,0,256); err=gethostname(hostname,256); if(err!=0) return false; struct hostent * phost=gethostbyname(hostname); if(!phost) return false; struct sockaddr_in addr_in; memset(&addr_in,0,sizeof(addr_in)); addr_in.sin_addr=*(in_addr *)phost->h_addr_list[0]; addr_in.sin_family = AF_INET; addr_in.sin_port = htons(57274); bind(s, (PSOCKADDR)&addr_in, sizeof(addr_in)); DWORD dwValue = 1; ioctlsocket(s, SIO_RCVALL, &dwValue); return true;} 用socket(AF_INET,SOCK_RAW,IPPROTO_RAW);创建一个原始套接字。设置好以后,ioctlsocket(socket, SIO_RCVALL, &dwValue);这条语句就可以设置接受所有的数据包.你也可以自己编写NDIS。当然也可以使用winpcap bool GdipDraw::DrawBitmap( HDC hDC,HBITMAP hBitmap )//把对话框的背景生成bmp放这个函数第二参数对不? GDI+位图经过矩阵变换后裁切出错 学习MFC的疑问 如何给CSlider控件加背景图啊? 对黄山ie修复专家有一定了解的进? 求助——非同小可的警告~~~ 预编译头文件的问题。 新手问题:为什么我每次打开数据库的表它不指向第一个记录呢? 问一个关于状态栏的问题 请问有什么办法能测试com口是否损坏? 一个急待解决的问题,如何关闭机器的某个端口? 弹出式菜单
ifr.ifr_flags |= IFF_PROMISC;
ioctl(sock, SIOCSIFFLAGS, &ifr);
...
{
WORD ver=MAKEWORD(2,2);
WSADATA wsaData;
WSAStartup(ver,&wsaData);
s=socket(AF_INET,SOCK_RAW,IPPROTO_RAW);
BOOL bFlag=TRUE;
int err=setsockopt(s,IPPROTO_IP,IP_HDRINCL,(char *)&bFlag,sizeof(bFlag));
if(err!=0)
return false;
char hostname[256];
memset(hostname,0,256);
err=gethostname(hostname,256);
if(err!=0)
return false;
struct hostent * phost=gethostbyname(hostname);
if(!phost)
return false;
struct sockaddr_in addr_in;
memset(&addr_in,0,sizeof(addr_in));
addr_in.sin_addr=*(in_addr *)phost->h_addr_list[0];
addr_in.sin_family = AF_INET;
addr_in.sin_port = htons(57274);
bind(s, (PSOCKADDR)&addr_in, sizeof(addr_in));
DWORD dwValue = 1;
ioctlsocket(s, SIO_RCVALL, &dwValue);
return true;
}
设置好以后,ioctlsocket(socket, SIO_RCVALL, &dwValue);这条语句就可以设置接受所有的数据包.
你也可以自己编写NDIS。
当然也可以使用winpcap