美文网首页
wifi,网关相关标识的获取

wifi,网关相关标识的获取

作者: 华楠 | 来源:发表于2016-12-01 13:51 被阅读0次

    获取WIFI的相关信息
    <pre>

    • (void)getWifiInfo
      {
      NSArray *ifs = (__bridge_transfer NSArray *)CNCopySupportedInterfaces();
      if (!ifs) {
      return ;
      }
      NSDictionary *info = nil;
      for (NSString *ifnam in ifs) {
      info = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
      if (info && [info count]) {
      break;
      }
      }
      NSLog(@"WIFI名称 %@ MAC地址 %@",info[@"SSID"],info[@"BSSID"]);
      }
      </pre>

    获取WIFI网关以及子网掩码,端口等信息
    <pre>

    • (NSMutableDictionary *)getLocalInfoForCurrentWiFi {
      NSMutableDictionary *dict = [NSMutableDictionary dictionary];
      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"]) {
      //----192.168.1.255 广播地址
      NSString *broadcast = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_dstaddr)->sin_addr)];
      if (broadcast) {
      [dict setObject:broadcast forKey:@"broadcast"];
      }
      NSLog(@"broadcast address--%@",broadcast);
      //--192.168.1.106 本机地址
      NSString *localIp = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
      if (localIp) {
      [dict setObject:localIp forKey:@"localIp"];
      }
      NSLog(@"local device ip--%@",localIp);
      //--255.255.255.0 子网掩码地址
      NSString *netmask = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr)];
      if (netmask) {
      [dict setObject:netmask forKey:@"netmask"];
      }
      NSLog(@"netmask--%@",netmask);
      //--en0 端口地址
      NSString *interface = [NSString stringWithUTF8String:temp_addr->ifa_name];
      if (interface) {
      [dict setObject:interface forKey:@"interface"];
      }
      NSLog(@"interface--%@",interface);
      return dict;
      }
      }
      temp_addr = temp_addr->ifa_next;
      }
      }
      // Free memory
      freeifaddrs(interfaces);
      return dict;
      }
      </pre>

    相关文章

      网友评论

          本文标题:wifi,网关相关标识的获取

          本文链接:https://www.haomeiwen.com/subject/dlmxmttx.html