Pages : 1
#1 Le 08/05/2017, à 15:08
- Degenesis
[Python] Script triage adresse IP
Hi,
J'essaye de regrouper des informations pour la création d'un script de triage par pays d'une liste d'adresse IP random.
Je dispose d'une liste assez longue d'adresses ip (+ de 1000) dans un fichier texte et je souhaite que chaque adresse se retrouve dans un fichier texte du nom du pays correspondant.
J'ai pu trouver ce modèle sur le net, il reste surement à adapter.
#!/usr/bin/env python
from urllib2 import urlopen
from contextlib import closing
import json
ip = '/home/user/Desktop/Listing.txt'
url = 'http://freegeoip.net/json/'+ip'
try:
with closing(urlopen(url)) as response:
location = json.loads(response.read())
print(location)
location_country = location['country_name']
except:
print("Location not found")
Je pensais à quelque chose fonctionnant avec GeoLite2, ça me semble plus simple mais j'ai également une autre piste.
#!/usr/bin/env python
from geoip import geolite2
db = open_database('/home/user/Desktop/GeoLite2-Country.mmdb')
match = geolite2.lookup('/home/user/Desktop/Scripts/Results.txt')
match.country
Hors ligne
#2 Le 10/05/2017, à 16:10
- Junkaria
Re : [Python] Script triage adresse IP
Salut !
Oui tu as plusieurs solutions...
Tu as aussi ce site : http://www.ipdeny.com/ipblocks/data/countries
Mais du coup ça demande de récupérer tous les fichiers tout ça ce qui est un peu chiant et lourd.
Tu peux aussi faire un curl ipinfo.io/<ip>, et parser le résultat pour récup le pays.
Je préfère cette solution car bcp moins contraignante, mais du coup ça va te générer beaucoup de requetes http (mais bon ça quand même).
GeoLite2 est aussi une très bonne solution.
Ubuntu 08.04-11.04 | Linux Mint | ArchLinux
Hors ligne
#3 Le 10/05/2017, à 16:51
- Degenesis
Re : [Python] Script triage adresse IP
Je trouve que GeoLite2 est plus intéressent pour justement éviter les requêtes HTTP à foison et cela évite de dépendre d'un service tiers, reste juste à installer un cron pour télécharger toutes les semaines une nouvelle version de la base de donnée disponible sur leur site.
Hors ligne
#4 Le 10/05/2017, à 22:31
- Degenesis
Re : [Python] Script triage adresse IP
Je début en Python et j'ai fouiller sur le net mais ça semble être un bon début. Des avis ?
#!/usr/bin/python
#-*- coding: utf-8 -*-
import sys
from geoip import geolite2
db = open_database('/home/user/Desktop/GeoLite2-Country.mmdb')
#Ouverture du fichier source
ip_source = open("/home/user/Desktop/Listing.txt", "r")
#Création d'un fichier temporaire où chaque ligne y sera ajoutée le temps du scan par GeoIp
#Ce fichier servira à l'analyse avec GeoIp, où chaque adresse se transformera en variale
ip_temp = open("/home/user/Desktop/Listing_temp.txt", "w")
#Analyse avec GeoIp
geoip.country('variable')
#Suivant le résultat, si le fichier texte existe l'adresse sera rajoutée au fichier existant
#Dans le cas contraire le fichier sera crée avec pour nom le nom du pays et l'adresse ip ajoutée au fichier.
#Fermeture du fichier source et temporaire
finally:
ip_source.close()
ip_temp.close()
exit(0)
Hors ligne
#5 Le 12/05/2017, à 09:31
- Junkaria
Re : [Python] Script triage adresse IP
En effet, GeoLite est la meilleure solution, je ne faisais que te proposer les solutions alternatives.
En fait, soit tu bosses avec des requêtes HTTP, soit avec la mémoire, tout dépend de tes préférences, et de la charge actuelle de ta machine.
Par contre je ne me souviens plus de la gueule de la base.
Mais le script est faisable en quelques minutes
Ubuntu 08.04-11.04 | Linux Mint | ArchLinux
Hors ligne
Pages : 1