IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ioctl获取所有网卡信息

    Qiang发表于 2011-04-26 07:26:52
    love 0

    /* 获得网卡名 */
    struct ifreq *ifr, *ifend;
    struct ifconf ifc;
    struct ifreq ifs[16];
    int sockfd;
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    ifc.ifc_len = sizeof(ifs);
    ifc.ifc_req = ifs;
    if (ioctl(sockfd, SIOCGIFCONF, &ifc) < 0) {
    writelog(g_log, "[error] %s(%d)-%s ioctl(): %s",__FILE__,__LINE__,__FUNCTION__,strerror(errno) );
    } else {
    ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
    for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
    if (ifr->ifr_addr.sa_family == AF_INET) {
    if ( strncmp(ifr->ifr_name,”lo”,strlen(“lo”)) ) {
    printf(“[dev]%s\n”,ifr->ifr_name);
    }
    }
    }
    }



沪ICP备19023445号-2号
友情链接