iOS開發獲取Wi-Fi信息,在訪問iOS蘋果開發平臺設置Wi-Fi權限很慢解決方案
原因:1.通過本機ping 得到
macs-iMac-2:~ mac$ ping developer.apple.com
PING world-gen.g.aaplimg.com (17.253.69.201): 56 data bytes
2.用得到這個IP 17.253.69.201 在 http://www.ip138.com/ 中查詢
3.得到
- 本站數據:日本 東京 蘋果公司
- 參考數據1:日本東京都東京
- 參考數據2:美國
- 兼容IPv6地址:::11FD:45C9
- 映射IPv6地址:::FFFF:11FD:45C9
這個地址是日本的,所以很慢,解決方案如下:
1.修改本機hosts文件添加國內的
在hosts文件最下面添加:
17.253.85.202 developer.apple.com
17.253.85.201 devstreaming-cdn.apple.com
2.然後在去訪問,你會發現快了很多哦!
3.進入hosts文件快捷方式
快捷鍵 command + shift +G
輸入前往文件夾 /etc/hosts
然後獲取當前連接的wifi信息的函數(SSID和SSIDDATA)
+ (NSString*)getCurrentWifi
{
NSString*wifiName =nil;
NSData*SSIDDATA =nil;
CFArrayRef myArray = CNCopySupportedInterfaces();
if(myArray !=nil)
{
CFDictionaryRef myDict =CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
if(myDict !=nil)
{
NSDictionary*dict = (NSDictionary*)CFBridgingRelease(myDict);
wifiName = [dictvalueForKey:@"SSID"];
SSIDDATA = [dictvalueForKey:@"SSIDDATA"];
}
}
if(wifiName !=nil&& SSIDDATA !=nil)
{
NSString *UTF8WifiName = [[NSString alloc] initWithData:SSIDDATA encoding:NSUTF8StringEncoding];
if(UTF8WifiName == nil)
{
//用GBK解碼
NSStringEncoding gbkEncoding=CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString*GBKWifiName = [[NSStringalloc]initWithData:SSIDDATAencoding:gbkEncoding];
//轉化爲UTF-8
NSCharacterSet*allowedCharacters = [[NSCharacterSetcharacterSetWithCharactersInString:GBKWifiName]invertedSet];
NSString*encodedUrl = [GBKWifiNamestringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
wifiName = [encodedUrlstringByRemovingPercentEncoding];
}
}
returnwifiName;
}