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 判断网线是否插入相关推荐

  1. linux下qt判断网线是否插入

    在带界面的嵌入式系统仪器中,一般使用qt做界面开发,设备基本支持网口,对于网络的拔插需要做检测并实时显示更新图标等. 之前试过qt自带的类,使用信号槽的方式监测网线的拔插,后来发现无效,未深究原因,后 ...

  2. 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态

    使用windows sdk提供的API函数GetAdaptersInfo()可以获得本机所有网卡的网卡名.网卡描述.网卡MAC地址.网卡IP.网卡类型等信息,并用IP_ADAPTER_INFO结构体存 ...

  3. linux如何判断网线插入_网卡如何识别10M/100M,如何检测网线插入

    本帖最后由 lzwml 于 2017-2-14 17:59 编辑 本帖作为工作笔记,下面是我用示波器测试dps83848 PHY芯片的记录,目前网卡仍旧不能100%工作 测试方法: pc与电路板连接在 ...

  4. linux如何判断网线插入_快速鉴定网线质量的常用方法

    网线在市面上的种类很多,有好有坏,鱼龙混杂,更有些商家以次充好.网线作为最常用的传输载体,我们有必要了解如何识别它的优劣.测试网线的方法有很多种,山东朗坤小编和大家一起来分享下.尤其是在监控项目中,往 ...

  5. linux 判断某个命令是否安装

    linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' ...

  6. java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...

    JAVA操作数据库-->从一张表中取值,经过判断,然后插入另一张表中. SQL语句如下:两张表 weather 和 weather_process. id均为自动增长.Oracle中采用序列 S ...

  7. linux判断改行符_Linux判断符如何使用?

    在Linux系统中判断符可帮助我们简化很多不必要的工作,可以大大提高我们的工作效率,这里介绍一下Shell中的常用判断符. Linux判断符1. 关于某个档名的『类型』侦测(存在与否),如 test ...

  8. iPhone判断是否已插入SIM卡

    2019独角兽企业重金招聘Python工程师标准>>> 判断 iPhone 是否插入了 SIM 卡,可以参考苹果官网的 systemconfigure framework 教程,将下 ...

  9. Linux 判断文件或文件夹是否存在

    Linux 判断文件或文件夹是否存在 shell脚本执行 1.文件存在则删除 if [ -f "filename" ];then rm -d filename fi 或者 if [ ...

最新文章

  1. 互联网协议 — Ethernet 局域网技术的发展
  2. struts2拦截器的实现原理及源码剖析
  3. 内建函数对象(STL)
  4. Jquery中 实现气泡消息提示
  5. HTML DOM方法
  6. Linux软链接的使用
  7. 怎样在半个月内迅速提升技能,搞定面试进 大厂?
  8. 无重复字符串的最长子串 python
  9. idea actiBPM插件生成png文件 (解决没有Diagrams或Designer选项问题)
  10. 为信息产业自主化而奋斗,第一本龙芯平台的Linux内核书来了!
  11. PLC与旋转编码器的连接
  12. JS实现点击复制目标内容
  13. DM manager工具使用
  14. html设置内外边距,css 内外边距如何使用?
  15. 不用邀请照样申请Gmail免费邮箱
  16. 硬核接亲!程序员被新娘要求现场写代码,结果万万没想到……
  17. 笔记:关于Google Play这个应用市场app signing的坑
  18. 基于Android开发的仿网易云播放器
  19. 【论文阅读笔记】MFRDet:A single-shot multi-level feature reused neural network for object detection
  20. 2021年T电梯修理考试及T电梯修理考试总结

热门文章

  1. FD.io/VPP — QoS — DPDK Hqos
  2. IPv6 — 协议头
  3. Altium Designer修改3D视图时PCB板的颜色
  4. 备份软件 FreeFileSync 怎么用
  5. 数据安全(主从复制)
  6. 用Perl发送邮件小例子
  7. 常用Linux基础命令
  8. 最简单的nagios监控内存插件(shell)
  9. 关于0bug中一处读者质疑的回复
  10. .net中窗体之间的数据交换总结