wifi,网关相关标识的获取

获取WIFI的相关信息

  • (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"]);
    }

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

  • (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;
    }

你可能感兴趣的:(wifi,网关相关标识的获取)