
Un script Python qui collecte toutes les adresses IP valides à partir de tous les fichiers texte d'un répertoire, et les vérifie par rapport à la base de données Whois, aux relais TOR et à la localisation.
Ce script analyse chaque fichier d'un dossier donné de manière récursive, extrait toutes les adresses IPv4 et IPv6, filtre les adresses IP publiques, puis interroge ces IP auprès des relais TOR, du service WhoIs et du service de localisation. Il produit 4 fichiers : un fichier CSV et un fichier JSON avec tous les détails des adresses IP, un fichier CSV contenant un index de chaque adresse IP trouvée et un fichier KML avec toutes les localisations collectées.
Python 3.9.x
Pour installer les dépendances, exécutez :
pip install -r requirements.txt
pip install pyinstaller
pyinstaller --onefile osips.py
python osips.py [-h] [-F INPUTFOLDER] [-f INPUTFILE] [-p INPUTFILESPATTERN] [-o OUTPUTFILESNAME] [-t {y,n,Y,N}] [-w {y,n,Y,N}] [-l {y,n,Y,N}] [-locationEndpoint LOCATIONENDPOINT]
python osips.py
python osips.py --checkTor Y --checkWhoIs Y --checkLocations Y --inputFolder testFolder/ --inputFilesPattern * --outputFilesName test
python osips.py -h
-h, --help
Affiche le message d'aide et quitte-F INPUTFOLDER, --inputFolder INPUTFOLDER
Un dossier contenant des fichiers avec des IP (fichiers journaux, fichiers email, fichiers texte, etc.). Les IP peuvent être IPv4 et/ou IPv6 et peuvent être placées n'importe où dans les fichiers. Le script analysera chaque fichier du dossier et recherchera chaque IP.-f INPUTFILE, --inputFile INPUTFILE
Utilisez cette option pour analyser un seul fichier au lieu d'un dossier contenant des fichiers. Le fichier peut être n'importe quel fichier texte contenant des adresses IP (fichiers journaux, fichiers email, fichiers texte, etc.).-p INPUTFILESPATTERN, --inputFilesPattern INPUTFILESPATTERN
Saisissez le motif à utiliser pour les fichiers dans le dossier d'entrée. Exemple : * pour tous les fichiers, *.txt pour les fichiers texte.-o OUTPUTFILESNAME, --outputFilesName OUTPUTFILESNAME
Le nom des fichiers de sortie, SANS EXTENSION. 4 fichiers différents seront créés avec ce nom : un fichier CSV stockant les détails des IP, un fichier d'index stockant les index des IP, un fichier JSON stockant les détails et un fichier KML stockant les localisations.-t {y,n,Y,N}, --checkTor {y,n,Y,N}
Spécifiez si vous voulez vérifier chaque adresse IP publique par rapport aux adresses IP des relais TOR-w {y,n,Y,N}, --checkWhoIs {y,n,Y,N}
Spécifiez si vous voulez extraire les informations WhoIs pour chaque adresse IP publique-l {y,n,Y,N}, --checkLocations {y,n,Y,N}
Spécifiez si vous voulez géocoder chaque adresse IP publique et extraire les informations de localisation en utilisant -locationEndpoint du script. Vous pouvez fournir un autre service qui prend une adresse IP comme paramètre et renvoie une réponse JSON. Utilisez <IP> comme paramètre pour l'emplacement de l'adresse IP. Exemples : https://ipapi.co//json, https://api.ipstack.com/?access_key=ACCESS_KEY, https://freeapi.robtex.com/ipquery/. Veuillez noter que certains de ces autres points de terminaison REST peuvent ne pas renvoyer les champs requis et donc casser la logique du script. Dans ce cas, la méthode nommée RequestInfoFromRestEndpoint doit être modifiée en conséquence.-locationEndpoint LOCATIONENDPOINT
Le point de terminaison REST par défaut pour la localisation est "https://reallyfreegeoip.org/json/". Vous pouvez spécifier un point de terminaison différent, incluant le paramètre . Le résultat doit être au format JSON et doit inclure les champs suivants : country_name, region_code, region_name, city, zip_code, time_zone, latitude, longitude, metro_code