如何判断网络是否通
来源: 互联网 发布时间:2015-09-12
本文导语: 有没有代码实现检测网络通或者不通的,主要是我拔掉网线,要程序能很容易知道网络不通了。 请大侠们指点指点 | int Detect_Eth(int netfd, char *ifname) { struct ifreq ifr; struct ethtool_value edata;...
有没有代码实现检测网络通或者不通的,主要是我拔掉网线,要程序能很容易知道网络不通了。
请大侠们指点指点
请大侠们指点指点
|
int Detect_Eth(int netfd, char *ifname)
{
struct ifreq ifr;
struct ethtool_value edata;
memset(&ifr, 0, sizeof(ifr));
edata.cmd = ETHTOOL_GLINK;
strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)-1);
ifr.ifr_data = (char *) &edata;
if(ioctl(netfd, SIOCETHTOOL, &ifr) == -1){
printf("ETHTOOL_GLINK failed: %sn", strerror(errno));
return 2;
}
return(edata.data ? 0 : 1);
}
{
struct ifreq ifr;
struct ethtool_value edata;
memset(&ifr, 0, sizeof(ifr));
edata.cmd = ETHTOOL_GLINK;
strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)-1);
ifr.ifr_data = (char *) &edata;
if(ioctl(netfd, SIOCETHTOOL, &ifr) == -1){
printf("ETHTOOL_GLINK failed: %sn", strerror(errno));
return 2;
}
return(edata.data ? 0 : 1);
}