导入头文件
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