这篇文章给大家分享的是有关C语言如何实现linux网卡检测精简版的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
万能的网络,通过getifaddrs可以大大减少编码量,获得 C语言实现linux网卡检测-改进版 同样的效果。
#include<stdlib.h> #include<stdio.h> #include<string.h> #include<sys/socket.h> #include<sys/ioctl.h> #include<linux/if.h> #include<ifaddrs.h> #include<arpa/inet.h> intc_ifaddrs_netlink_status(constchar*if_name) { structifaddrs*ifa=NULL,*ifList; if(getifaddrs(&ifList)<0) { return-1; } for(ifa=ifList;ifa!=NULL;ifa=ifa->ifa_next) { if(ifa->ifa_addr->sa_family==AF_INET) { if(strcmp(ifa->ifa_name,if_name)==0) { if(!(ifa->ifa_flags&IFF_UP)) { printf("DEVICE_DOWN\r\n"); freeifaddrs(ifList); return1; } if(!(ifa->ifa_flags&IFF_RUNNING)) { printf("DEVICE_UNPLUGGED\r\n"); freeifaddrs(ifList); return2; } printf("DEVICE_LINKED\r\n"); freeifaddrs(ifList); return3; } } } printf(stderr,"DEVICE_NONE\r\n"); freeifaddrs(ifList); return0; } intmain(intargc,char*argv[]) { inti=0; if(argc!=2) { fprintf(stderr,"usage:%s<ethname>\r\n",argv[0]); return-1; } i=c_ifaddrs_netlink_status(argv[1]); fprintf(stderr,"c_ifaddrs_netlink_statusif_status=%d\n",i); return0; }
感谢各位的阅读!关于“C语言如何实现linux网卡检测精简版”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
C/C++如何获取CAN信号
C语言怎么通过二分查找实现猜数字游戏
C语言数据结构中的线性表怎么使用
C语言的数据结构怎么理解
C语言的数据结构怎么理解这篇文章主要介绍了C语言的数据结构怎么理解...
C语言与C++中内存管理的方法
C语言链式队列与循环队列怎么实现
C语言冒泡排序怎么实现
C语言如何实现斐波那契数列
C语言如何实现斐波那契数列这篇文章主要介绍了C语言如何实现斐波那契...
C语言如何实现无符号数和有符号数间的运算
C语言中常用的头文件是什么
C语言中常用的头文件是什么这篇文章主要介绍“C语言中常用的头文件是...
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议