• 4877阅读
  • 1回复

网络连通·· [复制链接]

上一主题 下一主题
离线uyoufaith
 

只看楼主 正序阅读 楼主  发表于: 2008-12-11
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
怎么写一个程序判断网络是否连通了?

大侠们,帮忙啊···
离线mumutouv

只看该作者 1楼 发表于: 2008-12-11
int test_link_of_wired_iface(string interface)
{
    const char *iface = interface.c_str();
    int linkup = 0;
    int fdsock = socket(AF_INET, SOCK_DGRAM, 0);
    if(fdsock == -1)
    {
        linkup = 0;
    }
    struct ifreq devifreq;
    struct ifconf ifc;
    char buffer[8192];
    ifc.ifc_len = sizeof(buffer);
    ifc.ifc_buf = buffer;
    strcpy(devifreq.ifr_name, iface);

    if (ioctl(fdsock,SIOCGIFFLAGS,&devifreq) < 0)
        linkup=0;
    if ((devifreq.ifr_flags & IFF_UP)!=0)
    {
        if ((devifreq.ifr_flags & IFF_RUNNING)!=0 )
            linkup=1;
        else
            linkup=0;
    }
    else
        linkup=0;
    close(fdsock);
    return linkup;
}
快速回复
限100 字节
 
上一个 下一个