IOS开发——获取局域网IP

头文件

#include <arpa/inet.h>
#include <net/if.h>
#include <ifaddrs.h>


源码

- (NSString *)localIPAddress
{
    NSString *localIP = nil;
    struct ifaddrs *addrs;
    if (getifaddrs(&addrs)==0) {
        const struct ifaddrs *cursor = addrs;
        while (cursor != NULL) {
            if (cursor->ifa_addr->sa_family == AF_INET && (cursor->ifa_flags & IFF_LOOPBACK) == 0)
            {
                //NSString *name = [NSString stringWithUTF8String:cursor->ifa_name];
                //if ([name isEqualToString:@"en0"]) // Wi-Fi adapter
                {
                    localIP = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];
                    break;
                }
            }
            cursor = cursor->ifa_next;
        }
        freeifaddrs(addrs);
    }
    return localIP;
}


之前用过IPAddress.h及.c的,但pch中不得包含头文件;找了好久,终于找到这段代码,分享一下

posted @ 2012-12-26 23:38  脱离语言  阅读(186)  评论(0编辑  收藏  举报