当前位置: 技术问答>linux和unix
如何将网卡从混杂模式恢复到原先的状态(编程)
来源: 互联网 发布时间:2016-06-27
本文导语: 现在我已经可以将网卡从普通模式转换到混杂模式了(代码如下),但是如何恢复回去? 转到混合模式代码:供大家参考 /*********************************************************************************** Function Name :DNS_mDNS_Set_Promisc(...
现在我已经可以将网卡从普通模式转换到混杂模式了(代码如下),但是如何恢复回去?
转到混合模式代码:供大家参考
转到混合模式代码:供大家参考
/***********************************************************************************
Function Name :DNS_mDNS_Set_Promisc()
Description :设置网卡为混合模式
Input :char *pcinterface 接口名称
int sock 套接字
Output :无
Return :成功返回0 失败返回1
Other :
***********************************************************************************/
unsigned long DNS_mDNS_Set_Promisc( char *pcinterface, int sock)
{
struct ifreq ifr;
strncpy(ifr.ifr_name, pcinterface,strlen(pcinterface)+1);
if((ioctl(sock,SIOCGIFFLAGS,&ifr)==-1))
{
printf( "Could not retrive flags for the interface!");
return 1;
}
printf( "The interface is:::%sn", pcinterface);
printf( "Retrieved flags from interface successfully");
ifr.ifr_flags|=IFF_PROMISC;
if(ioctl(sock,SIOCSIFFLAGS,&ifr)==-1)
{
printf( "Could not set the PROMISC flag:");
return 1;
}
printf( "Setting interface:::%s:::to promisc", pcinterface);
return 0;
}
|
照原样, 参数变一下
ifr.ifr_flags &= ~IFF_PROMISC;
ifr.ifr_flags &= ~IFF_PROMISC;