linux 判断网线是否插入
1.检查网线是否插入可以查看
/sys/class/net/eth0/carrier 文件的内容。 1 表示网线有插入, 0 表示没接网线。
2.Netlink实现网卡上下线监控:
#include <sys/types.h>
#include <sys/socket.h>
#include <asm/types.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <linux/if.h>
#include <string.h> #define BUFLEN 20480 int main(int argc, char *argv[])
{ int fd, retval; char buf[BUFLEN] = {0}; int len = BUFLEN; struct sockaddr_nl addr; struct nlmsghdr *nh; struct ifinfomsg *ifinfo; struct rtattr *attr; fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, sizeof(len)); memset(&addr, 0, sizeof(addr)); addr.nl_family = AF_NETLINK; addr.nl_groups = RTNLGRP_LINK; bind(fd, (struct sockaddr*)&addr, sizeof(addr)); while ((retval = read(fd, buf, BUFLEN)) > 0) { for (nh = (struct nlmsghdr *)buf; NLMSG_OK(nh, retval); nh = NLMSG_NEXT(nh, retval)) { if (nh->nlmsg_type == NLMSG_DONE) break; else if (nh->nlmsg_type == NLMSG_ERROR) return -1; else if (nh->nlmsg_type != RTM_NEWLINK) continue; ifinfo = NLMSG_DATA(nh); printf("%u: %s", ifinfo->ifi_index, (ifinfo->ifi_flags & IFF_LOWER_UP) ? "up" : "down" ); attr = (struct rtattr*)(((char*)nh) + NLMSG_SPACE(sizeof(*ifinfo))); len = nh->nlmsg_len - NLMSG_SPACE(sizeof(*ifinfo)); for (; RTA_OK(attr, len); attr = RTA_NEXT(attr, len)) { if (attr->rta_type == IFLA_IFNAME) { printf(" %s", (char*)RTA_DATA(attr)); break; } } printf("\n"); } } return 0;
}
linux 判断网线是否插入相关推荐
- linux下qt判断网线是否插入
在带界面的嵌入式系统仪器中,一般使用qt做界面开发,设备基本支持网口,对于网络的拔插需要做检测并实时显示更新图标等. 之前试过qt自带的类,使用信号槽的方式监测网线的拔插,后来发现无效,未深究原因,后 ...
- 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态
使用windows sdk提供的API函数GetAdaptersInfo()可以获得本机所有网卡的网卡名.网卡描述.网卡MAC地址.网卡IP.网卡类型等信息,并用IP_ADAPTER_INFO结构体存 ...
- linux如何判断网线插入_网卡如何识别10M/100M,如何检测网线插入
本帖最后由 lzwml 于 2017-2-14 17:59 编辑 本帖作为工作笔记,下面是我用示波器测试dps83848 PHY芯片的记录,目前网卡仍旧不能100%工作 测试方法: pc与电路板连接在 ...
- linux如何判断网线插入_快速鉴定网线质量的常用方法
网线在市面上的种类很多,有好有坏,鱼龙混杂,更有些商家以次充好.网线作为最常用的传输载体,我们有必要了解如何识别它的优劣.测试网线的方法有很多种,山东朗坤小编和大家一起来分享下.尤其是在监控项目中,往 ...
- linux 判断某个命令是否安装
linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' ...
- java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...
JAVA操作数据库-->从一张表中取值,经过判断,然后插入另一张表中. SQL语句如下:两张表 weather 和 weather_process. id均为自动增长.Oracle中采用序列 S ...
- linux判断改行符_Linux判断符如何使用?
在Linux系统中判断符可帮助我们简化很多不必要的工作,可以大大提高我们的工作效率,这里介绍一下Shell中的常用判断符. Linux判断符1. 关于某个档名的『类型』侦测(存在与否),如 test ...
- iPhone判断是否已插入SIM卡
2019独角兽企业重金招聘Python工程师标准>>> 判断 iPhone 是否插入了 SIM 卡,可以参考苹果官网的 systemconfigure framework 教程,将下 ...
- Linux 判断文件或文件夹是否存在
Linux 判断文件或文件夹是否存在 shell脚本执行 1.文件存在则删除 if [ -f "filename" ];then rm -d filename fi 或者 if [ ...
最新文章
- 互联网协议 — Ethernet 局域网技术的发展
- struts2拦截器的实现原理及源码剖析
- 内建函数对象(STL)
- Jquery中 实现气泡消息提示
- HTML DOM方法
- Linux软链接的使用
- 怎样在半个月内迅速提升技能,搞定面试进 大厂?
- 无重复字符串的最长子串 python
- idea actiBPM插件生成png文件 (解决没有Diagrams或Designer选项问题)
- 为信息产业自主化而奋斗,第一本龙芯平台的Linux内核书来了!
- PLC与旋转编码器的连接
- JS实现点击复制目标内容
- DM manager工具使用
- html设置内外边距,css 内外边距如何使用?
- 不用邀请照样申请Gmail免费邮箱
- 硬核接亲!程序员被新娘要求现场写代码,结果万万没想到……
- 笔记:关于Google Play这个应用市场app signing的坑
- 基于Android开发的仿网易云播放器
- 【论文阅读笔记】MFRDet:A single-shot multi-level feature reused neural network for object detection
- 2021年T电梯修理考试及T电梯修理考试总结