获取WIFI的相关信息
1 - (void)getWifiInfo 2 { 3 NSArray *ifs = (__bridge_transfer NSArray *)CNCopySupportedInterfaces(); 4 if (!ifs) { 5 return ; 6 } 7 NSDictionary *info = nil; 8 for (NSString *ifnam in ifs) { 9 info = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam); 10 if (info && [info count]) { 11 break; 12 } 13 } 14 NSLog(@"WIFI名称 %@ MAC地址 %@",info[@"SSID"],info[@"BSSID"]); 15 }
获取WIFI网关以及子网掩码,端口等信息
1 - (NSMutableDictionary *)getLocalInfoForCurrentWiFi { 2 NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 3 struct ifaddrs *interfaces = NULL; 4 struct ifaddrs *temp_addr = NULL; 5 int success = 0; 6 // retrieve the current interfaces - returns 0 on success 7 success = getifaddrs(&interfaces); 8 if (success == 0) { 9 // Loop through linked list of interfaces 10 temp_addr = interfaces; 11 //*/ 12 while(temp_addr != NULL) { 13 if(temp_addr->ifa_addr->sa_family == AF_INET) { 14 // Check if interface is en0 which is the wifi connection on the iPhone 15 if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { 16 //----192.168.1.255 广播地址 17 NSString *broadcast = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_dstaddr)->sin_addr)]; 18 if (broadcast) { 19 [dict setObject:broadcast forKey:@"broadcast"]; 20 } 21 NSLog(@"broadcast address--%@",broadcast); 22 //--192.168.1.106 本机地址 23 NSString *localIp = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; 24 if (localIp) { 25 [dict setObject:localIp forKey:@"localIp"]; 26 } 27 NSLog(@"local device ip--%@",localIp); 28 //--255.255.255.0 子网掩码地址 29 NSString *netmask = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr)]; 30 if (netmask) { 31 [dict setObject:netmask forKey:@"netmask"]; 32 } 33 NSLog(@"netmask--%@",netmask); 34 //--en0 端口地址 35 NSString *interface = [NSString stringWithUTF8String:temp_addr->ifa_name]; 36 if (interface) { 37 [dict setObject:interface forKey:@"interface"]; 38 } 39 NSLog(@"interface--%@",interface); 40 return dict; 41 } 42 } 43 temp_addr = temp_addr->ifa_next; 44 } 45 } 46 // Free memory 47 freeifaddrs(interfaces); 48 return dict; 49 }