我使用的代码如下所示:
ANSICHAR HostName[256];
gethostname(HostName,256);
struct addrinfo *AddrInfo = NULL;
getaddrinfo(HostName, NULL, NULL, &AddrInfo);
for (struct addrinfo *i = AddrInfo; i != NULL; i = i->ai_next)
{
if (i->ai_family == AF_INET)
{
const in_addr &IP = ((sockaddr_in *) i->ai_addr)->sin_addr;
if (IP.s_addr != 0)
{
Addr.SetIp(IP);
break;
}
}
}
问题是由“gethostname(HostName,256)”得到的“HostName”是“localhost”。 所以我得到的最终IP是“127.0.0.1”。 我使用的IP地址“adb shell ifconfig wlan0”。
之间存在差异如何获得正确的IP地址?