为什么我无法阅读iOS WiFi地址?

时间:2013-03-31 22:24:59

标签: ios titanium wifi

我需要阅读我的iOS设备的Wifi地址。但是我试过的代码在模拟器和iPad 2 / v6.1.3

上失败了

我在Titanium工作,所以首先我尝试了Titanium.Platform.address。这回归未定义。

然后我开始在Objective C工作。但是这个功能也无法获得WiFi IP。我知道WiFi已打开,因为互联网正常工作,如果我手动输入设备的地址,我的网络项目就可以工作。

- (id)networkAddress
{
    NSLog(@"[INFO] getting network IP");

    BOOL success;
    struct ifaddrs * addrs;
    const struct ifaddrs * cursor;

    success = getifaddrs(&addrs) == 0;
    if (success) {

        NSLog(@"[INFO] getifaddrs() success");

        cursor = addrs;
        while (cursor != NULL) {
            if (cursor->ifa_addr->sa_family == AF_INET && (cursor->ifa_flags & IFF_LOOPBACK) == 0) // this second test keeps from picking up the loopback address
            {
                NSString *name = [NSString stringWithUTF8String:cursor->ifa_name];
                if ([name isEqualToString:@"en0"]) { // found the WiFi adapter
                    return [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];
                }
            }

            cursor = cursor->ifa_next;
        }
        freeifaddrs(addrs);
    }
    return NULL;
}

什么可以阻止我阅读WiFi IP地址?

1 个答案:

答案 0 :(得分:0)

我发现代码可以从这个答案中找到:

Fetching IP address of router to which iPhone is connected