C语言实现linux网卡连接检测的方法
本文实例为大家分享了C语言实现linux网卡连接检测的具体代码,供大家参考,具体内容如下
直接上代码吧
#include#include #include #include #include #include #include #include #include #include intget_if_miireg(constchar*if_name,intphy_id,intreg_num) { intfd=-1; structifreqifr; structmii_ioctl_data*mii; intvalue; if((fd=socket(AF_INET,SOCK_DGRAM,0))<0) { perror("socket"); close(fd); return-1; } bzero(&ifr,sizeof(ifr)); strncpy(ifr.ifr_name,if_name,IFNAMSIZ-1); ifr.ifr_name[IFNAMSIZ-1]=0; if(ioctl(fd,SIOCGMIIPHY,&ifr)<0) { perror("ioctl"); close(fd); return-1; } mii=(structmii_ioctl_data*)&ifr.ifr_data; mii->reg_num=reg_num;//0x01 if(ioctl(fd,SIOCGMIIREG,&ifr)<0) { perror("ioctl"); close(fd); return-1; } close(fd); value=((mii->val_out&0x04)>>2); returnvalue; } intmain(intargc,char*argv[]) { inti=0; if(argc!=2) { fprintf(stderr,"usage:%s ",argv[0]); return-1; } i=get_if_miireg(argv[1],0x10,0x01); printf("if_status=%d\n",i); return0; }
只能识别网线是否连接,还没识别网卡是否存在状态,也不识别网卡存在是否为down状态。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。