Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1855285
  • 博文数量: 317
  • 博客积分: 1557
  • 博客等级: 上尉
  • 技术积分: 1208
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-26 23:38
个人简介

如果想出发,就不要等到明天!

文章分类

全部博文(317)

文章存档

2016年(1)

2015年(41)

2014年(152)

2013年(114)

2012年(4)

2011年(1)

2009年(4)

分类: LINUX

2013-05-21 17:30:39

直接上代码,你懂的。。。

  1. //获取网卡链接状态
  2. #include <fcntl.h>
  3. #include <errno.h>
  4. #include <linux/sockios.h>
  5. #include <linux/ethtool.h>

  6. int get_netlink_status(const char *if_name)// if_name 是网卡名称,如 eth0
  7. {

  8.     // -1 -- error , details can check errno

  9.     // 1 -- interface link up

  10.     // 0 -- interface link down.
  11.     int skfd;
  12.     struct ifreq ifr;
  13.     struct ethtool_value edata;
  14.     edata.cmd = ETHTOOL_GLINK;
  15.     edata.data = 0;
  16.     memset(&ifr, 0, sizeof(ifr));
  17.     strncpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name) - 1);
  18.     ifr.ifr_data = (char *) &edata;
  19.     if (( skfd = socket( AF_INET, SOCK_DGRAM, 0 )) == 0)
  20.         return -1;
  21.     if(ioctl( skfd, SIOCETHTOOL, &ifr ) == -1)
  22.     {
  23.         close(skfd);
  24.         return -1;
  25.     }
  26.     close(skfd);
  27.     return edata.data;
  28. }

阅读(4071) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~