Як я можу визначити місцезнаходження відвідувача на своєму веб-сайті?


19

Якщо я хочу надати веб-сайту відповідний вміст для розташування, якими способами я можу знайти грубе місцезнаходження відвідувача за допомогою їх IP-адреси чи інформації заголовка?



4
Ви повинні надіслати це питання замість StackOverflow.com .
Йонас

7
Я думаю, що завжди будуть виникати питання кросовера, які будуть відповідні обом. Але відповіді тут з точки зору ГІС можуть бути різними, ніж відповіді з точки зору програмування.
JamesRyan

Відповіді:


12

По-перше, ви повинні знати, що точність цих послуг є і завжди буде низькою.

MaxMind Geolite city - безкоштовно . Якщо це недостатньо добре, ви, мабуть, можете перейти на більш точну платну версію. Я не можу говорити за якість платної версії, оскільки я ніколи її не використовував.

Якщо вам подобається ваш SQL, завантажте версію CSV . Завантажте його у вашу базу даних та вибирайте запит.

Більш швидкий і просторний варіант - завантажити файл бінарної версії блобу тієї самої бази даних, а потім використовувати API, специфічний для мови, з того самого веб-сайту, щоб запитувати його.

Крім того, я знайшов ipinfodb.com корисним. Запит здійснюється за допомогою простого HTTP GET. Наприклад, для геолокації stackoverflow.com спробуйте:

http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211

Це поверне файл XML, що містить широту та довготу, що виглядає так:

<Response>
  <Ip>69.59.196.211</Ip>
  <Status>OK</Status>
  <CountryCode>US</CountryCode>
  <CountryName>United States</CountryName>
  <RegionCode>41</RegionCode>
  <RegionName>Oregon</RegionName>
  <City>Corvallis</City>
  <ZipPostalCode>97333</ZipPostalCode>
  <Latitude>44.4698</Latitude>
  <Longitude>-123.343</Longitude>
</Response>

Через 5 років .... Чи може хтось оновити цю відповідь? Опублікувати нову відповідь?
Dror Atariah

Через 5 років більшість геоїдних систем марні, тому що вони не в змозі правильно знайти мобільних користувачів ...
Майк Шендел

9

Місце, з якого можна зробити висновок із IP-адреси, не є надто надійним (тобто воно колись працює).

Якщо ви хочете отримати надійне місцезнаходження, розгляньте API геолокації, який є частиною HTML5 . Зауважте, що не всі веб-браузери підтримують це (поки що).


1
+1 для HTML5. Ви завжди можете використовувати і те, і інше - якщо API Geoloation не працює, поверніться до IP-адреси. Більше підтримка веб-сайтів означає більший тиск на постачальників браузерів для підтримки кращих технологій.
naught101

Але ми говоримо про "брутальне розташування відвідувачів", тому це може бути не тим, чого ви хочете. Важливим моментом є те, що геолокація HTML5 з’явиться на екрані жахливого підтвердження. Так, місце розташування зазвичай буде набагато точнішим ... але лише після того, як відвідувач погодиться на запит про підтвердження.
Гаррі Вуд

3

Опція, яка зосереджена на підтримці мобільних пристроїв, хоча також добре працює на більшості браузерів настільних ПК (крім мого досвіду IE), - це пакет Geo-Location-Javascript, який обробляє згаданий API GeoLocation API HTML5. Я знайшов підтримку браузера для мобільних пристроїв досить бідним для API HTML5 (однак, не дивно, оскільки він все ще знаходиться в чернеті), тому я пішов з цим пакетом.

Результати від пристроїв moblie є досить хорошими в зв'язку зі стільниковим і Wi-Fi (і GPS, якщо у пристрою є). Настільні браузери повідомляють про досить грубозернисту позицію, порівняну з іншими службами.



2

У Quova http://www.quova.com/ також є сервіс. Я говорив з ними вчора в GeoLoco. За їхніми словами (так візьміть це із зерном солі), вони кажуть, що вони значно кращі у світі, ніж MaxMind. Вони приблизно рівні в Північній Америці.

Майте на увазі, що для мобільних телефонів IP, ймовірно, відображатиметься там, де Оператор має свій шлюз до Інтернету. Ви також можете спробувати скористатися - http://www.loc-aid.com/, якщо ви орієнтуєтесь на мобільні телефони.


2

Аналітика Google надає основні карти та статистику щодо місцезнаходження вашого відвідувача. Звичайно, ви повинні поділитися цією інформацією з Google ...


4
це дозволить мені звітувати про відвідувачів, але не налаштовувати свій вміст у
дорозі

0

ipinfodb.com це добре, але вони в даний час офлайн :(

Я використовую це для своєї api . Це чудово для моєї погоди, але я не знаю, зараз він був офлайн з вчорашнього дня.


1
Дякую за відповідь Ви помітили, що @FMark вже описав цю послугу в попередній відповіді в цій темі?
whuber

це не критика щодо ipinfodb, але у мене були проблеми з моїм конвертером валют та інструментом api , я намагався використовувати це для автоматичного визначення місця розташування і міг дати їм пряме місцезнаходження, пов’язане з валютою, але у S було багато проблемних сайтів. днів в режимі офлайн, або якась помилка підключення чи розповідається багато часу завантаження, яке може вплинути на продуктивність вашого сайту, і Google не хоче, щоб ...
jarauzes

Infodb здається чудовим, пробував це вже місяцями .. у них є ліміт? я маю на увазі відвідувачів в день?

0

Якщо ви хочете надати їм вміст або рекламу на основі їх географічного розташування, ви не можете розраховувати на отримання даних про місцезнаходження з пристрою. Навіть якщо вони є на мобільних телефонах, існує велика ймовірність того, що у них GPS та Wi-Fi вимкнено, і вони повинні дати згоду на надання спільного місцезнаходження.

Це так: "Гей, чи можете ви поділитися своїм місцем розташування зі мною, щоб я міг надати вам вміст та оголошення, які, на мою думку, найбільше пов'язані з вашим географічним місцезнаходженням?" Відповідь: "Ні! Дайте мені найкращий вміст та оголошення, які у вас є"

Єдиний спосіб знайти місцезнаходження, не запитуючи дозволу, через їх IP-адресу. Ви можете встановити базу даних на власному сервері та запросити її, щоб знайти місце розташування ІР-адреси або використовувати зовнішній API, який потрібно запитувати та отримувати результати. Я використовую ipgp геолокацію api і чудово працюю. ( http://www.ipgp.net/ip-address-geolocation-api/ )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.