12
votes

Terrain GeoIP Data sur une carte du monde

J'ai besoin d'une bibliothèque (de préférence écrite en Python) qui est capable de prendre une série d'adresses IP (ou de coordonnées géographiques) et de les parcourir sur une carte du monde.

J'ai déjà trouvé Celui-ci , mais il génère des données comme une. Fichier SVG et il est simplement incapable de faire face aux grands ensembles de données.

Veuillez noter que j'ai besoin de quelque chose qui peut être téléchargé et exécuté localement, donc pas de téléchargement de données sur les services Web tiers.

merci!


0 commentaires

5 Réponses :


2
votes

L'API Google Maps peut prendre en charge tout ce qui précède si vous souhaitez configurer un environnement Web local pour les tests. Il y a une enveloppe autour de l'API pour Python appelé PYMAPS .

La documentation de l'API a un exemple sur la manière d'utiliser le géocodeur de Google pour tracer des points sur une carte donnée une adresse d'entrée particulière:

Google Maps EXEMPLE: Géocodage simple


1 commentaires

De ce que je comprends, Pympas est juste une enveloppe pour faciliter l'utilisation de Google Maps. Cependant, je veux exécuter cela complètement hors ligne, sans envoyer de données à l'extérieur (à Google, par exemple).



11
votes

Peut-être Basemap dans Matplotlib pour le traçage.

Il peut faire toutes sortes de projections (ne vous dérange pas des couleurs défaillantes laides ). Et vous avez un bon contrôle sur quoi / comment vous complotez. Vous pouvez même utiliser imagerie de marbre bleu nasa . Et bien sûr, vous pouvez tracer des marqueurs, des lignes, etc. sur la carte Utilisation de la commande Traque .

Je n'ai pas mis d'énormes jeux de données à travers cela, mais que c'est une partie de Matplotlib que je soupçonne que cela fera bien.

Si je me souviens bien, malgré la partie de la bibliothèque, elle n'exprime pas par défaut avec Matplotlib.


0 commentaires

2
votes

Vous voudrez peut-être consulter Mapsplotlib code> .

Installation h2>

Seulement python 2.7! P>

import pandas as pd
from mapsplotlib import mapsplot as mplt

df = pd.read_csv("data.csv")

mplt.register_api_key('your_google_api_key_here')
mplt.density_plot(df['latitude'], df['longitude'])


0 commentaires

1
votes

J'ai récemment utilisé gmplot code> .

l'installer simplement avec p> xxx pré>

il est extrêmement em> facile à utiliser. Tout ce que vous avez à faire est de brancher les valeurs de longitude et de latitude et gmplot code> mettra une carte dans le formulaire HTML. P>

Voici un exemple minimal. Laissez lat_values ​​ code> et lon_values ​​ code> Soyez des listes de la latitude et des valeurs de longitude. P>

from gmplot import gmplot
import numpy as np

center_lat = np.mean(lat_values)
center_lon = np.mean(lon_values)
zoom = 15

gmap = gmplot.GoogleMapPlotter(center_lat, center_lon, zoom) 
gmap.scatter(lat_values, lon_values)
gmap.draw('my_map.html')


0 commentaires

3
votes

Comme d'autres personnes ont mentionné, vous pouvez aller chercher les emplacements et écrire du code pour les mettre sur une carte, mais il existe également un moyen plus facile de le faire.

Vous pouvez utiliser gratuitement Carte IPS outil, qui créera une carte interactive des adresses IP. Voici un exemple pour AWS IP Ranges .

Carte IPS Aperçu de l'outil

Vous pouvez soit copier / coller l'IPS ou utiliser l'outil via CURL. Il traitera jusqu'à 500k IPS. xxx

Disclaimer : Je travaille à IPInfo.


1 commentaires

IPInfo.io est exactement ce que je cherchais. Merci d'avoir partagé!!