导入头文件
1
2
3
|
# import <ifaddrs.h> # import <arpa/inet.h> # import <SystemConfiguration/CaptiveNetwork.h> |
核心代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
+ (nullable NSString*)getCurrentLocalIP { NSString *address = nil; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0 ; // retrieve the current interfaces - returns 0 on success success = getifaddrs(&interfaces); if (success == 0 ) { // Loop through linked list of interfaces temp_addr = interfaces; while (temp_addr != NULL) { if (temp_addr->ifa_addr->sa_family == AF_INET) { // Check if interface is en0 which is the wifi connection on the iPhone if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@ "en0" ]) { // Get NSString from C String address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } // Free memory freeifaddrs(interfaces); return address; } |
1
2
3
4
5
6
7
8
9
10
11
|
+ (nullable NSString *)getCurreWiFiSsid { NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces(); NSLog(@ "Supported interfaces: %@" , ifs); id info = nil; for (NSString *ifnam in ifs) { info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam); NSLog(@ "%@ => %@" , ifnam, info); if (info && [info count]) { break ; } } return [(NSDictionary*)info objectForKey:@ "SSID" ]; } |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持服务器之家!
原文链接:http://www.cnblogs.com/KiVen2015/p/6625253.html