作者Neo1978 (Neo1978)
看板LinuxDev
标题Re: [问题] 请问怎得知连线状态变化
时间Fri Aug 21 12:40:44 2009
※ 引述《panda22 (panda)》之铭言:
: 请问在user level中有没有办法 得知乙太网路
: 网路线是否有插上网路卡
: 当然前提是假设驱动程式有提供这样资讯给核心
: 感谢
static int get_link_status(char *interface)
{
struct ethtool_value edata;
int skfd;
struct ifreq ifr;
if (( skfd = socket( AF_INET, SOCK_DGRAM, 0 ) ) < 0 ) {
perror("get_link_status error:\n");
return -1;
}
edata.cmd = ETHTOOL_GLINK;
strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)-1);
ifr.ifr_data = (char *) &edata;
if (ioctl(skfd, SIOCETHTOOL, &ifr) == -1) {
debug("ETHTOOL_GLINK failed: %s\n", strerror(errno));
close(skfd);
return -1;
}
close(skfd);
return edata.data;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.237.154
1F:推 phterry:有用推 08/24 16:52