C语言实现linux网卡检测精简版

 更新时间:2018年06月29日 11:23:32   作者:handyhuang  
这篇文章主要为大家详细介绍了C语言实现linux网卡检测的精简版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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> 
 
 
int c_ifaddrs_netlink_status(const char *if_name )
{
 struct ifaddrs *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);
   return 1;
  }
 
  if(!(ifa->ifa_flags & IFF_RUNNING))
  {
   printf("DEVICE_UNPLUGGED\r\n");
   freeifaddrs(ifList);
   return 2;
  }
 
  printf("DEVICE_LINKED\r\n");
  freeifaddrs(ifList);
  return 3;
  }
 } 
 } 
 
 printf(stderr, "DEVICE_NONE\r\n");
 freeifaddrs(ifList);
 return 0;
}
 
int main(int argc, char* argv[])
{
 int i=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_status if_status = %d\n", i );
 return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C++基于LINUX的文件操作

    C++基于LINUX的文件操作

    这篇文章主要为大家介绍了C++基于LINUX的文件操作示例知识扩充,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • C语言超详细讲解函数指针的运用

    C语言超详细讲解函数指针的运用

    函数指针是一个指针变量,它可以存储函数的地址,然后使用函数指针,下面这篇文章主要给大家介绍了关于C语言进阶教程之函数指针的相关资料,需要的朋友可以参考下
    2022-06-06
  • 关于数组做函数参数的问题集合汇总

    关于数组做函数参数的问题集合汇总

    本文是对关于数组做函数参数的问题进行了详细的汇总,需要的朋友可以过来参考下。希望对大家有所帮助
    2013-10-10
  • Qt实现自定义日志类的示例代码

    Qt实现自定义日志类的示例代码

    这篇文章主要为大家详细介绍了使用 qInstallMessageHandler() 实现一个简单的日志工具,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2023-12-12
  • C++制作简单的计算器功能

    C++制作简单的计算器功能

    这篇文章主要为大家详细介绍了C++制作简单的计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C语言带头双向循环链表的示例代码

    C语言带头双向循环链表的示例代码

    这篇文章主要介绍了如何利用C语言实现带头双向循环链表,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-11-11
  • C++ LARGE_INTEGER解析与使用案例详解

    C++ LARGE_INTEGER解析与使用案例详解

    这篇文章主要介绍了C++ LARGE_INTEGER解析与使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C/C++中的atan和atan2函数实例用法

    C/C++中的atan和atan2函数实例用法

    在本篇文章里小编给大家分享的是一篇关于C/C++中的atan和atan2函数实例用法相关内容,有兴趣的朋友们可以学习下。
    2020-02-02
  • 一文搞懂C语言static关键字的三个作用

    一文搞懂C语言static关键字的三个作用

    这篇文章主要介绍了C语言static关键字的三个作用,本文通过实例代码图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • C语言合并排序及实例代码

    C语言合并排序及实例代码

    本篇文章主要介绍C语言合并排序算法,这里对合并排序通过实例代码进行了详细讲解,希望能帮助到大家学习
    2016-07-07

最新评论