Как получить Страну согласно определенному IP?

Вот мои 3 цента ... Это демонстрирует явную сериализацию json для древовидного объекта python. Примечание. Если вам действительно нужен такой код, вы можете использовать класс twisted FilePath .

import json, sys, os

class File:
    def __init__(self, path):
        self.path = path

    def isdir(self):
        return os.path.isdir(self.path)

    def isfile(self):
        return os.path.isfile(self.path)

    def children(self):        
        return [File(os.path.join(self.path, f)) 
                for f in os.listdir(self.path)]

    def getsize(self):        
        return os.path.getsize(self.path)

    def getModificationTime(self):
        return os.path.getmtime(self.path)

def _default(o):
    d = {}
    d['path'] = o.path
    d['isFile'] = o.isfile()
    d['isDir'] = o.isdir()
    d['mtime'] = int(o.getModificationTime())
    d['size'] = o.getsize() if o.isfile() else 0
    if o.isdir(): d['children'] = o.children()
    return d

folder = os.path.abspath('.')
json.dump(File(folder), sys.stdout, default=_default)

58
задан Paul Ratazzi 22 December 2017 в 18:53
поделиться

7 ответов

Много людей (включая мою компанию), кажется, использует MaxMind GeoIP.

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

36
ответ дан Orion Edwards 24 November 2019 в 18:54
поделиться

Самыми точными являются Цифровые Элементы NetAcuity... не свободный, но Вы получаете то, что Вы платите большую часть времени.... Цифровой Элемент

2
ответ дан CSharpAtl 24 November 2019 в 18:54
поделиться

Я не знаю, как точный, который hostip.info сайт. Я просто посетил тот сайт, и он сообщил, что моей страной является Канада. Я нахожусь в США и ISP, который использует мой офис, только работает из США. Это действительно позволяет Вам исправлять, это - предположение, но если Вы будете использовать этот сервис отследить посетителей веб-сайта страной, у Вас не будет способа знать, корректны ли данные. Конечно, я - всего одна точка данных. Я загрузил базу данных GeoLite Country, которая является просто .csv файлом, и мой IP-адрес был правильно идентифицирован как США.

Другое преимущество линейки продуктов MaxMind (заплаченный или свободный) - то, что у Вас есть данные, Вы не подвергаетесь хиту производительности совершения звонка веб-сервиса к другой системе.

5
ответ дан Chris Miller 24 November 2019 в 18:54
поделиться

Вот хороший бесплатный сервис с общедоступным API: http://www.hostip.info/use.html

10
ответ дан Mark Harrison 24 November 2019 в 18:54
поделиться

Существует два подхода: использование интернет-сервиса и использование некоторого локального списка (возможно, обернутый в библиотеку). То, что Вы хотите, будет зависеть от того, что Вы создаете.

Для сервисов:

Для списков:

38
ответ дан Community 24 November 2019 в 18:54
поделиться

IPINFODB предоставляет бесплатную базу данных и API для IP на страну и наоборот. Они используют бесплатные данные из MaxMind. Данные обновляются каждый месяц, и это отличная бесплатная альтернатива с достойной точностью.

8
ответ дан 24 November 2019 в 18:54
поделиться

google's clientlocation возвращает ( мой пример)

latlng = new google.maps.LatLng(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude);
location = "IP location: " + getFormattedLocation();
document.getElementById("location").innerHTML = location;
2
ответ дан 24 November 2019 в 18:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: