LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 784|回复: 1

如何用C获取系统网卡的详细信息

[复制链接]
发表于 2006-5-27 10:24:22 | 显示全部楼层 |阅读模式
如何用C获取系统网卡的IP地址、子网掩码、网关、域名服务器等详细信息?
发表于 2006-5-27 16:53:31 | 显示全部楼层
使用ioctl函数
bool KNetStatsView:penFdSocket() {
        if (mFdSock > 0)
                return true;
        if ((mFdSock = socket(AF_INET, SOCK_DGRAM, 0)) > 0)
                return true;
        return false;
}

QString KNetStatsView::getIp() {
        if (mFdSock == -1 && !openFdSocket())
                return "";

        ioctl(mFdSock, SIOCGIFADDR, &mDevInfo);
        sockaddr_in sin = ((sockaddr_in&)mDevInfo.ifr_addr);
        return inet_ntoa(sin.sin_addr);
}

QString KNetStatsView::getNetmask() {
        if (mFdSock == -1 && !openFdSocket())
                return "";
        ioctl(mFdSock, SIOCGIFNETMASK, &mDevInfo);
        sockaddr_in mask = ((sockaddr_in&)mDevInfo.ifr_netmask);
        return inet_ntoa(mask.sin_addr);
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表