0

我想得到我现在的国家;但我不想使用“LocationManager”或“NSLocale”我只需要国家名称。有什么想法吗?

非常感谢 :)

4

3 回答 3

5

您应该尝试获取蜂窝信息

#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>

// Setup the Network Info and create a CTCarrier object
CTTelephonyNetworkInfo *networkInfo = [[[CTTelephonyNetworkInfo alloc] init] autorelease];
CTCarrier *carrier = [networkInfo subscriberCellularProvider];

// Get carrier name
NSString *carrierName = [carrier carrierName];
if (carrierName != nil)
  NSLog(@"Carrier: %@", carrierName);

// Get mobile country code
NSString *mcc = [carrier mobileCountryCode];
if (mcc != nil)
  NSLog(@"Mobile Country Code (MCC): %@", mcc);

// Get mobile network code
NSString *mnc = [carrier mobileNetworkCode];
if (mnc != nil)
  NSLog(@"Mobile Network Code (MNC): %@", mnc);

或者

您应该尝试从设备 IP 地址获取 Country

通过 IP 地址识别国家

于 2013-09-03T12:35:21.107 回答
1

我通过调用这个 url 解决了它

http://www.geoplugin.net/json.gp

您也可以致电测试http://www.geoplugin.net/json.gp?ip=3.255.255.255

于 2016-02-17T12:52:27.287 回答
0

请试试这个,它可以使用最新的 PHP 版本 100

$ip=$_SERVER['REMOTE_ADDR'];

$Details=unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip));

如果您想检查完整的数组,请尝试以下一个

echo var_export(unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip)));
于 2018-11-20T10:48:21.503 回答