Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink


Ubuntu 08.04-11.04 | Linux Mint | ArchLinux

Hors ligne