如何获取IP地址在android(而不是localhost)中使用ndk?

时间:2012-02-08 06:17:04

标签: android sockets android-ndk

我使用的代码如下所示:

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地址?

0 个答案:

没有答案