C语言实现linux网卡连接检测
来源:互联网 发布:查看linux网络地址 编辑:程序博客网 时间:2024/06/05 19:42
直接上代码吧
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <linux/if.h>#include <linux/mii.h>#include <linux/sockios.h>#include <errno.h>int get_if_miireg(const char *if_name, int phy_id, int reg_num ){int fd = -1; struct ifreq ifr; struct mii_ioctl_data *mii; int value;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 = (struct mii_ioctl_data *)&ifr.ifr_data;mii->reg_num = reg_num;//0x01if (ioctl(fd, SIOCGMIIREG, &ifr) < 0){ perror("ioctl");close(fd);return -1;}close(fd);value = ((mii->val_out&0x04)>>2);return value;}int main(int argc, char* argv[]){ int i=0; if(argc != 2) { fprintf(stderr, "usage: %s <ethname>", argv[0]); return -1; } i = get_if_miireg(argv[1],0x10,0x01); printf( "if_status = %d\n", i ); return 0;}
只能识别网线是否连接,还没识别网卡是否存在状态,也不识别网卡存在是否为down状态。
知道的兄弟姐妹回复一下啊!
1 0
- C语言实现linux网卡连接检测
- C语言+shell 实现linux网卡状态检测
- C语言实现linux网卡检测-改进版
- C语言实现linux网卡检测-代码精简版
- Linux下如何用C编程实现检测网卡与网线的连接状态
- Linux下如何用C编程实现检测网卡与网线的连接状态
- Linux 检测网卡与网线连接状态
- linux 下C语言实现 读取网卡速度
- linux 下C语言实现 读取网卡速度
- linux 下C语言实现 读取网卡速度 .
- Linux下用c实现通过ping检测连接
- Linux下检测网卡与网线连接状态
- Linux下检测网卡与网线连接状态
- Linux下检测网卡与网线的连接状态
- Linux下检测网卡与网线的连接状态
- Linux下检测网卡与网线的连接状态
- linux网卡检测命令
- GTK 程序 检测 网线是否连接 本地网络状态 C语言实现
- Solr Cookbook学习记录 - MoreLikeThis学习
- MQTT的学习研究(5) MQTT moquette 的 Blocking API 发布消息服务端使用
- 如何在WinCE 5.0中安装 .Net Compact Framework?
- listview 实现微信删除功能向左移动item出现隐藏的删除按钮功能终于实现了,分享总结一下。(跟微信删除一样额)
- tq2440 Linux 2.6.30.4内核移植
- C语言实现linux网卡连接检测
- MQTT的学习研究(6)MQTT 订阅消息客户端使用
- 深入理解Java:注解(Annotation)自定义注解入门
- Solr Cookbook学习记录 - 第一章Solr配置
- 拖祖国后腿了
- 辞职了,倒计时
- STM32库函数SystemInit()的理解
- Solr Cookbook学习记录 - 第二章indexing your data
- 字符串的表示形式