iOS 获取本机在局域网中的IP

2017-09-14  本文已影响0人  在下有双

1、添加头文件

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

2、实现方法

- (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;
}
上一篇 下一篇

猜你喜欢

热点阅读