- 获取网口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 条评论