
Python-скрипт, который собирает все действительные IP-адреса из всех текстовых файлов в каталоге и проверяет их по базе данных Whois, ретрансляторам TOR и местоположению.
Этот скрипт рекурсивно сканирует каждый файл из заданной папки, извлекает все IPv4 и IPv6 адреса, отфильтровывает публичные IP-адреса и затем запрашивает эти IP-адреса в сетях TOR, сервисе WhoIs и службе определения местоположения. Он создаёт 4 файла: CSV-файл и JSON-файл со всеми деталями IP-адресов, CSV-файл с индексом каждого найденного IP-адреса и KML-файл со всеми собранными местоположениями.
Python 3.9.x
Для установки зависимостей выполните:
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
Показать справку и выйти-F INPUTFOLDER, --inputFolder INPUTFOLDER
Папка, содержащая файлы с IP-адресами (лог-файлы, файлы электронной почты, текстовые файлы и т.д.). IP-адреса могут быть IPv4 и/или IPv6 и могут находиться в любом месте файлов. Скрипт обработает каждый файл в папке и просканирует каждый IP-адрес.-f INPUTFILE, --inputFile INPUTFILE
Используйте эту опцию для сканирования только одного файла вместо папки с файлами. Файл может быть любым текстовым файлом, содержащим IP-адреса (лог-файлы, файлы электронной почты, текстовые файлы и т.д.).-p INPUTFILESPATTERN, --inputFilesPattern INPUTFILESPATTERN
Укажите шаблон для файлов во входной папке. Пример: * для всех файлов, *.txt для текстовых файлов.-o OUTPUTFILESNAME, --outputFilesName OUTPUTFILESNAME
Имя для выходных файлов, БЕЗ РАСШИРЕНИЯ. С этим именем будут созданы 4 разных файла: CSV-файл с подробными данными IP-адресов, индексный файл с индексами IP, JSON-файл с данными и KML-файл с местоположениями.-t {y,n,Y,N}, --checkTor {y,n,Y,N}
Укажите, хотите ли вы проверять каждый публичный IP-адрес на соответствие IP-адресам ретрансляторов TOR.-w {y,n,Y,N}, --checkWhoIs {y,n,Y,N}
Укажите, хотите ли вы извлекать информацию WhoIs для каждого публичного IP-адреса.-l {y,n,Y,N}, --checkLocations {y,n,Y,N}
Укажите, хотите ли вы геокодировать каждый публичный IP-адрес и извлечь информацию о местоположении с помощью .-locationEndpoint LOCATIONENDPOINT
По умолчанию конечная точка REST для местоположения: "https://reallyfreegeoip.org/json/". Вы можете указать другую конечную точку, включая заполнитель . Результат должен быть в формате JSON и содержать следующие поля: country_name, region_code, region_name, city, zip_code, time_zone, latitude, longitude, metro_code.