GeoLocation API

Я просто столкнулся с этим замечательным API: http://ipinfodb.com/ip_location_api.php

Однако я хотел бы также получить континент. Возможно ли это, потому что я не могу его найти.

Может быть, есть другой API, который свободно доступен, который будет предлагать город, страну и континент? Я попробовал API AJAX Googles, но они также не предлагают континенту.

Может быть, мне придется просто преобразовать то, что у меня уже есть на континентах, как ?!

Надеюсь, это не слишком субъективно!

Спасибо всем

Solutions Collecting From Web of "GeoLocation API"

Почему бы вам не сопоставить каждый CountryCode XX CountryCode с соответствующим континентом? Не должно быть слишком сложно, так как здесь всего около 200 стран и 5 или 7 континентов.

EDIT: я не знаю такой подготовленной базы данных на PHP, но вот массив json_encode для всех стран, где код страны является ключевым и континентом в качестве значения:

$json = '{"AD":"Europe","AE":"Asia","AF":"Asia","AG":"North America","AI":"North America","AL":"Europe","AM":"Asia","AN":"North America","AO":"Africa","AQ":"Antarctica","AR":"South America","AS":"Australia","AT":"Europe","AU":"Australia","AW":"North America","AZ":"Asia","BA":"Europe","BB":"North America","BD":"Asia","BE":"Europe","BF":"Africa","BG":"Europe","BH":"Asia","BI":"Africa","BJ":"Africa","BM":"North America","BN":"Asia","BO":"South America","BR":"South America","BS":"North America","BT":"Asia","BW":"Africa","BY":"Europe","BZ":"North America","CA":"North America","CC":"Asia","CD":"Africa","CF":"Africa","CG":"Africa","CH":"Europe","CI":"Africa","CK":"Australia","CL":"South America","CM":"Africa","CN":"Asia","CO":"South America","CR":"North America","CU":"North America","CV":"Africa","CX":"Asia","CY":"Asia","CZ":"Europe","DE":"Europe","DJ":"Africa","DK":"Europe","DM":"North America","DO":"North America","DZ":"Africa","EC":"South America","EE":"Europe","EG":"Africa","EH":"Africa","ER":"Africa","ES":"Europe","ET":"Africa","FI":"Europe","FJ":"Australia","FK":"South America","FM":"Australia","FO":"Europe","FR":"Europe","GA":"Africa","GB":"Europe","GD":"North America","GE":"Asia","GF":"South America","GG":"Europe","GH":"Africa","GI":"Europe","GL":"North America","GM":"Africa","GN":"Africa","GP":"North America","GQ":"Africa","GR":"Europe","GS":"Antarctica","GT":"North America","GU":"Australia","GW":"Africa","GY":"South America","HK":"Asia","HN":"North America","HR":"Europe","HT":"North America","HU":"Europe","ID":"Asia","IE":"Europe","IL":"Asia","IM":"Europe","IN":"Asia","IO":"Asia","IQ":"Asia","IR":"Asia","IS":"Europe","IT":"Europe","JE":"Europe","JM":"North America","JO":"Asia","JP":"Asia","KE":"Africa","KG":"Asia","KH":"Asia","KI":"Australia","KM":"Africa","KN":"North America","KP":"Asia","KR":"Asia","KW":"Asia","KY":"North America","KZ":"Asia","LA":"Asia","LB":"Asia","LC":"North America","LI":"Europe","LK":"Asia","LR":"Africa","LS":"Africa","LT":"Europe","LU":"Europe","LV":"Europe","LY":"Africa","MA":"Africa","MC":"Europe","MD":"Europe","ME":"Europe","MG":"Africa","MH":"Australia","MK":"Europe","ML":"Africa","MM":"Asia","MN":"Asia","MO":"Asia","MP":"Australia","MQ":"North America","MR":"Africa","MS":"North America","MT":"Europe","MU":"Africa","MV":"Asia","MW":"Africa","MX":"North America","MY":"Asia","MZ":"Africa","NA":"Africa","NC":"Australia","NE":"Africa","NF":"Australia","NG":"Africa","NI":"North America","NL":"Europe","NO":"Europe","NP":"Asia","NR":"Australia","NU":"Australia","NZ":"Australia","OM":"Asia","PA":"North America","PE":"South America","PF":"Australia","PG":"Australia","PH":"Asia","PK":"Asia","PL":"Europe","PM":"North America","PN":"Australia","PR":"North America","PS":"Asia","PT":"Europe","PW":"Australia","PY":"South America","QA":"Asia","RE":"Africa","RO":"Europe","RS":"Europe","RU":"Europe","RW":"Africa","SA":"Asia","SB":"Australia","SC":"Africa","SD":"Africa","SE":"Europe","SG":"Asia","SH":"Africa","SI":"Europe","SJ":"Europe","SK":"Europe","SL":"Africa","SM":"Europe","SN":"Africa","SO":"Africa","SR":"South America","ST":"Africa","SV":"North America","SY":"Asia","SZ":"Africa","TC":"North America","TD":"Africa","TF":"Antarctica","TG":"Africa","TH":"Asia","TJ":"Asia","TK":"Australia","TM":"Asia","TN":"Africa","TO":"Australia","TR":"Asia","TT":"North America","TV":"Australia","TW":"Asia","TZ":"Africa","UA":"Europe","UG":"Africa","US":"North America","UY":"South America","UZ":"Asia","VC":"North America","VE":"South America","VG":"North America","VI":"North America","VN":"Asia","VU":"Australia","WF":"Australia","WS":"Australia","YE":"Asia","YT":"Africa","ZA":"Africa","ZM":"Africa","ZW":"Africa"}'; 

Просто позвоните:

 echo '<pre>'; print_r(json_decode($json, true)); echo '</pre>'; 

Есть только 200 стран и только 6 континентов, поэтому я бы поставил под вопрос, почему вам нужен веб-сервис, чтобы определить этот бит информации … если вы не планируете получать много пользователей из стран, которые так политически нестабильны, они изменят имена или перестанут существовать до вашего приложения. Просто сохраните статический список.

Кроме того, не все страны находятся на континенте. Например, Новая Зеландия не является частью Австралии (по крайней мере, согласно Википедии).

Если вы можете программно определить страну пользователя, у вас будет достаточно информации, чтобы найти свой континент в статическом списке, который у вас есть. Вам понадобится час, чтобы собрать эту информацию самостоятельно и поместить ее в базу данных или файл XML, и он редко будет меняться. Вы уже потратили почти столько времени, пытаясь выяснить, как определить континент динамически.

Посмотрите MaxMind GeoLite Country и MaxMind GeoLite City .

Если на континенте вы в основном находитесь (я не знаю, хранит ли GeoLite это), вы всегда можете сопоставить коды стран из базы данных GeoLite с кодами стран мировой базы данных, которые MySql использует в качестве примерной базы данных. У этого есть материк для каждой страны.

Попробуйте http://www.geobytes.com/IpLocator.htm?GetLocation

Я использую их онлайн-интерфейс все время, никогда не пробовал API.