• 获取网口ip地址
    char *interface2ip(char *infName) {
    struct ifaddrs *ifAddrStruct;
    void *tmpAddrPtr=NULL;
    char ip[16];
    memset(ip, 0, sizeof(ip));
    static char infIP[16];
    getifaddrs(&ifAddrStruct);
    while (ifAddrStruct != NULL)
    {
        if (ifAddrStruct->ifa_addr->sa_family==AF_INET && 0 == strcmp(ifAddrStruct->ifa_name,infName))
        {
            tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr;
            inet_ntop(AF_INET, tmpAddrPtr, ip, INET_ADDRSTRLEN);
            //printf("eth0 ip :%s\n",ip);
            strcpy(infIP,ip);
            //printf("infIP is :%s\n",infIP);
        }
        ifAddrStruct=ifAddrStruct->ifa_next;
    }
    //free ifaddrs
    freeifaddrs(ifAddrStruct);
    //return 0;
    return infIP;
    }
char infName[] = "eth0";
    char *ip = interface2ip(infName);
    LOG(INFO) << "eth0 ip " << ip;

0 条评论

发表回复

您的电子邮箱地址不会被公开。