首页 > 系统 > iOS > 正文

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

2020-07-26 02:51:58
字体:
来源:转载
供稿:网友

导入头文件

#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"];}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持武林网!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表