版权声明:本文为博主原创文章,转载请附上本文链接地址。from : https://blog.csdn.net/lovechris00 https://blog.csdn.net/lovechris00/article/details/84870533
核心代码
#import <CoreWLAN/CoreWLAN.h>
#import <SystemConfiguration/SystemConfiguration.h>
- (NSString *)returnNetWorkJudge{
NSString *pingHost = @"abc.apple.com";
SCNetworkConnectionFlags flags = 0;
if (pingHost && [pingHost length] > 0) {
flags = 0;
BOOL found = NO;
//判断当前网络连接
SCNetworkReachabilityRef reachabilityRef = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [pingHost UTF8String]);
if (reachabilityRef) {
found = SCNetworkReachabilityGetFlags(reachabilityRef, &flags)
&& (flags & kSCNetworkFlagsReachable)
&& !(flags & kSCNetworkFlagsConnectionRequired);
CFRelease(reachabilityRef);
reachabilityRef = NULL;
}
if (found) {
NSLog(@"Connection established");
NSLog(@"\n\n----- CWInterface \n\n")
CWInterface* wifi = [[CWWiFiClient sharedWiFiClient] interface];
NSLog(@"interfaceNames : %@",[CWWiFiClient interfaceNames]);
/*
interfaceNames : (
en1
)
*/
NSLog(@"interfaceName: %@", wifi.interfaceName); //BSD if name: en1
NSLog(@"powerOn: %d", wifi.powerOn);
NSLog(@"ssid: %@", wifi.ssid);
NSLog(@"bssid: %@", wifi.bssid);
NSLog(@"rssiValue: %ld", wifi.rssiValue);
NSLog(@"noiseMeasurement: %ld", wifi.noiseMeasurement);
NSLog(@"transmitRate: %f", wifi.transmitRate);
NSLog(@"countryCode: %@", wifi.countryCode);
NSLog(@"interfaceMode: %ld", wifi.interfaceMode);
NSLog(@"transmitPower: %ld", wifi.transmitPower);
NSLog(@"hardwareAddress: %@", wifi.hardwareAddress);
NSLog(@"serviceActive: %d", wifi.serviceActive);
NSLog(@"security: %ld", wifi.security);
NSLog(@"cachedScanResults: %@ \n", wifi.cachedScanResults);
NSLog(@"\n\n----- CWChannel \n")
CWChannel *channel = wifi.wlanChannel;
NSLog(@"channel: %@",channel);
NSLog(@"channelNumber: %ld",channel.channelNumber);
NSLog(@"channelWidth: %ld",channel.channelWidth);
NSLog(@"channelBand: %ld ",channel.channelBand);
NSLog(@"\n\n----- CWConfiguration \n")
CWConfiguration *config = wifi.configuration;
NSLog(@"config: %@",config);
NSLog(@"requireAdministratorForAssociation: %d",config.requireAdministratorForAssociation);
NSLog(@"requireAdministratorForPower: %d",config.requireAdministratorForPower);
NSLog(@"requireAdministratorForIBSSMode: %d",config.requireAdministratorForIBSSMode);
NSLog(@"rememberJoinedNetworks: %d ",config.rememberJoinedNetworks);
NSLog(@"\n\n----- CWNetworkProfile \n")
NSOrderedSet *networkProfiles = config.networkProfiles;
for (CWNetworkProfile *profile in networkProfiles) {
NSLog(@"profile : %@",profile);
NSLog(@"ssid : %@ \n\n",profile.ssid);
NSLog(@"\n----- \n")
}
if (wifi.ssid.length > 0) {
return @"WIFI";
} else{
return @"本地网络";
}
}
if (!found) {
NSLog(@"Connection not established");
return @"无网络";
}
}
return @"无网络";
}
运行结果
没有开启 WiFi 时(无论是否连接有线)
----- CWInterface
interfaceNames : (
en1
)
interfaceName: en1
powerOn: 0
ssid: (null)
bssid: (null)
rssiValue: 0
noiseMeasurement: 0
transmitRate: 0.000000
countryCode: (null)
interfaceMode: 0
transmitPower: 0
hardwareAddress: d4:dc:cd:f2:35:3c
serviceActive: 1
security: 9223372036854775807
开启wifi时
Connection established
----- CWInterface
interfaceNames : (
en1
)
interfaceName: en1
powerOn: 1
ssid: PH
bssid:
rssiValue: -63
noiseMeasurement: -93
transmitRate: 486.000000
countryCode: (null)
interfaceMode: 1
transmitPower: 1496
hardwareAddress: d4:dc:cd:f2:35:3c
serviceActive: 1
security: 9
cachedScanResults: {(
<CWNetwork: 0x600000001ff0> [ssid=PH-SH-G, bssid=..., security=Open, rssi=-58, channel=<CWChannel: 0x604000003170> [channelNumber=3(2GHz), channelWidth={20MHz}], ibss=0],
)}
----- CWChannel
channel: <CWChannel: 0x6000000023d0> [channelNumber=44(5GHz), channelWidth={40MHz(+1)}]
channelNumber: 44
channelWidth: 2
channelBand: 2
----- CWConfiguration
config: <CWConfiguration: 0x600000034020>
requireAdministratorForAssociation: 0
requireAdministratorForPower: 0
requireAdministratorForIBSSMode: 0
rememberJoinedNetworks: 1
----- CWNetworkProfile
profile : SSID: PH-Dormitory (<4e657445 6173652d 446f726d 69746f72 79>)
Captive: No
Was Captive: No
Domain Name: (null)
Passpoint: No
Display Name: (null)
Roaming Consortium List: (null)
NAI Realm List: (null)
SP Roaming Enabled: No
Security: WPA2 Enterprise
Hidden: No
Possibly Hidden: No
System Mode: No
Roaming Profile Type: Multi
Personal Hotspot: No
BSSID List: (
{
"LEAKY_AP_BSSID" = "11:11:11:11:11:11";
"LEAKY_AP_LEARNED_DATA" = <>;
},
...
}
)
Share Mode: NotSupported
User Role: Owner
PayloadUUID: (null)
ssid : PH-Dormitory
-----
profile : SSID: PH (<4e657445 6173652d 3547>)
Captive: No
Was Captive: No
Domain Name: (null)
Passpoint: No
Display Name: (null)
Roaming Consortium List: (null)
NAI Realm List: (null)
SP Roaming Enabled: No
Security: WPA/WPA2 Enterprise
Hidden: No
Possibly Hidden: No
System Mode: No
Roaming Profile Type: Multi
Personal Hotspot: No
BSSID List: (
{
"LEAKY_AP_BSSID" = "11:11:11:11:11:11";
"LEAKY_AP_LEARNED_DATA" = <>;
},
...
)
Share Mode: NotSupported
User Role: Owner
PayloadUUID: (null)
ssid : PH