当前位置: 首页 > 编程笔记 >

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

颛孙高义
2023-03-14
本文向大家介绍iOS获取当前连接的WiFi以及IP地址,包括了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"];
}

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

 类似资料:
  • 问题内容: 我需要在Swift中获取iOS设备的IP地址。这不是其他有关此问题的重复!如果没有wifi IP地址,我只需要获取WiFiIP地址-我需要处理它。关于堆栈溢出有一些问题,但是只有返回IP地址的函数。: 在这里,我得到2个值-来自移动互联网的地址(我认为)和需要的WiFi地址。还有其他方法可以获取仅WiFi IP地址吗? 问题答案: 根据多个SO线程(例如,iOS网络接口名称的确切含义是

  • 本文向大家介绍Android获取当前已连接的wifi信号强度的方法,包括了Android获取当前已连接的wifi信号强度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android获取当前已连接的wifi信号强度的方法,是Android程序开发中非常常见的重要技巧。分享给大家供大家参考之用。具体方法如下: 1.得到当前已连接的wifi信息 其中wifiInfo有以下的方法: wif

  • 就是用户打开页面后端,可以直接获取本机的ip地址吗?

  • 问题内容: 我正在尝试开发一个系统,其中有不同的节点在不同的系统或同一系统的不同端口上运行。 现在,所有节点都使用目标IP创建一个套接字,该目标IP是称为自举节点的特殊节点的IP。然后,节点创建自己的节点并开始侦听连接。 引导节点维护节点列表,并在查询时返回它们。 现在,我需要的是该节点必须将其IP注册到引导节点。一旦客户端连接到节点,我就尝试使用该方法,但这没有用。 我需要客户端注册其PPP I

  • 本文向大家介绍iOS获取手机ip地址代码,包括了iOS获取手机ip地址代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了iOS获取手机ip地址的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我使用的是Api级别8的Android,我想获取我的以太网接口的地址(eth0)。 在API级别8中,NetworkInterface类没有函数getHardwareAddress()。WifiManager也不起作用,因为它不是无线接口。 提前致谢! 问题答案: 假设您的以太网接口是eth0,请尝试打开并读取文件。