iOS获取当前连接的WiFi以及IP地址

导入头文件

#import <ifaddrs.h>

#import <arpa/inet.h>

#import <SystemConfiguration/CaptiveNetwork.h>

核心代码:

+ (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;

}

+ (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"];

}

以上是 iOS获取当前连接的WiFi以及IP地址 的全部内容, 来源链接: utcz.com/z/348412.html

回到顶部