如何在不使用" LocationManager"的情况下获取当前国家/地区或者" NSLocale"?

时间:2013-09-03 10:17:20

标签: iphone xcode ipad location

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

非常感谢:)

3 个答案:

答案 0 :(得分:5)

你应该尝试获取Cellular信息

#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地址

获取国家/地区

Identifying country by IP address

答案 1 :(得分:1)

我通过调用此URL

解决了这个问题

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

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

进行测试

答案 2 :(得分: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)));