2016-06-23 7 views

ответ

0

Я думаю NSLocale это хороший вариант, чтобы получить код страны и имя, а затем IP так попробовать, как показано ниже кода:

NSLocale *locale = [NSLocale currentLocale]; 
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode]; 
NSString *countryName = [locale displayNameForKey: NSLocaleCountryCode value: countryCode]; 
NSLog(@"%@ %@",countryName, countryCode); 

Надеется, что это поможет вам.

+0

да, но он изменяется путем изменения настроек в региональном. –

+0

Тогда эта бесплатная база данных может вам помочь: http://dev.maxmind.com/geoip/legacy/geolite/ –

0

Вы можете загрузить в базу данных IP страны от http://lite.ip2location.com/database-ip-country

Чтобы извлечь страну из диапазона IP не забудьте рассчитать число IP:

public Long getIpNumber(String ip) { 

    if (StringUtils.isBlank(ip)) 
     return null; 

    String[] ipArray = ip.split("\\."); 

    long result = 0; 
    long ipLong = 0; 

    for (int x = 3; x >= 0; x--) { 
     ipLong = Long.parseLong(ipArray[3 - x]); 
     result |= ipLong << (x << 3); 
    } 

    return result; 
}