奇怪的输出在eth0上获取Ipaddress

时间:2017-01-11 14:13:19

标签: c++ linux sockets network-programming ip-address

我正在尝试通过C ++获取计算机的IP地址,并且已经显示了一些奇怪的输出。

这是我的代码:

 struct ifaddrs *ifadp,*tmp;
    char addrbuf[NI_MAXHOST] ;
    int s;
    getifaddrs(&ifadp);
    for(tmp = ifadp; tmp != NULL; tmp = tmp->ifa_next) {
        if(tmp->ifa_addr == NULL)
            continue;

        s = getnameinfo(tmp->ifa_addr, sizeof(struct sockaddr_in),addrbuf,NI_MAXHOST,NULL,0,NI_NUMERICHOST);
        if(std::strcmp(tmp->ifa_name,"eth0")==0)
            std::cout << tmp->ifa_name<< " " << addrbuf<<std::endl;
    }
    freeifaddrs(ifadp);
        return 0;

和输出:

eth0 �A`��
eth0 10.134.50.86
eth0 10.134.50.86

关于第一个输出的任何想法?同时,OS是linux。

0 个答案:

没有答案