GeoIP ближайшая (ближайшая) страна - PullRequest
2 голосов
/ 08 августа 2010

Ребята, у меня небольшая проблема, я попытался найти несколько примеров системы на основе GeoIP, которая расширяет поиск на основе соседних стран.Например, посетитель из Великобритании и пытается найти IP-адреса из Франции, Испании, Бельгии и т. Д., Например, из Бразилии, Аргентины, Китая.Итак, как я могу получить ближайшие страны из данной страны / IP-адреса и увеличивать их, увеличивая расстояние?

Редактировать: я использую бесплатную версию Max-mind, так как меня не волнуют города.И мой проект основан на C #.

Ответы [ 2 ]

1 голос
/ 08 августа 2010

Ну, первый шаг к решению проблемы - использовать базовую географию и классифицировать страны по континентам .

Оттуда вы можете составить список расстояний в пределах данного континента и отсортировать их по этим «расстояниям» или «весам».

Географическое расстояние (например, км или миль) между столицами должно быть "достаточно хорошим" приближением, чтобы начать, если вы хотите быть модным.Бьюсь об заклад, вы могли бы даже найти такой список с небольшим поиском в Интернете.

Оттуда у вас есть "проблема почтового отделения" (Кнут) или " поиск ближайшего соседа "проблема оптимизации, и в этом случае я подозреваю, что вы можете [ REWORDED ] просто выполнить линейный поиск по разделам континентов.Если вам нужна лучшая производительность, тогда достаточно приблизительного алгоритма.(ответы не гарантируют, что это будет лучшее решение, но должны быть разумными большую часть времени)

Обратите внимание, что эта форма "маршрутизации" на основе географии является слабой в некоторых исключительных случаях, таких какКуба, которая не получает доступа в Интернет от своего (наивного) очевидного географического соседа, США, и некоторых стран типа «черной дыры» из-за политических отношений.Я подозреваю, что Северная Корея и Тибет - похожие случаи.

0 голосов
/ 17 февраля 2015

Maxmind дает вам широту / долготу каждой страны, так что вы можете просто рассчитать разницу своей страны с другими, и все готово.См. эту ветку для расчета расстояния геолокации или используйте библиотеку по вашему выбору.

Но имейте в виду, что географическое местоположение страны всего лишь где-то в одной точкев этой стране, а не в ближайших точках к вам.

...