
Um script Python que coleta todos os endereços IP válidos de todos os arquivos de texto de um diretório e os verifica no banco de dados Whois, retransmissores TOR e localização.
Este script examina recursivamente todos os ficheiros de uma determinada pasta, extrai todos os endereços IPv4 e IPv6, filtra os endereços IP públicos e, em seguida, consulta esses IPs contra relays TOR, serviço WhoIs e serviço de localização. Produz 4 ficheiros: um ficheiro CSV e um ficheiro JSON com todos os detalhes dos endereços IP, um ficheiro CSV contendo um índice de cada endereço IP encontrado e um ficheiro KML com todas as localizações recolhidas.
Python 3.9.x
Para instalar as dependências, execute:
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
Mostra a mensagem de ajuda e sai-F INPUTFOLDER, --inputFolder INPUTFOLDER
Uma pasta contendo ficheiros com IPs (ficheiros de registo, ficheiros de email, ficheiros de texto, etc.). Os IPs podem ser IPv4 e/ou IPv6 e podem estar localizados em qualquer lugar nos ficheiros. O script irá analisar todos os ficheiros na pasta e procurar por cada IP-f INPUTFILE, --inputFile INPUTFILE
Use esta opção para analisar apenas um ficheiro em vez de uma pasta com ficheiros. O ficheiro pode ser qualquer ficheiro de texto que contenha endereços IP (ficheiros de registo, ficheiros de email, ficheiros de texto, etc.)-p INPUTFILESPATTERN, --inputFilesPattern INPUTFILESPATTERN
Introduza o padrão a utilizar para os ficheiros na pasta de entrada. Exemplo: * para todos os ficheiros, *.txt para ficheiros de texto.-o OUTPUTFILESNAME, --outputFilesName OUTPUTFILESNAME
O nome para os ficheiros de saída, SEM EXTENSÃO. Serão criados 4 ficheiros diferentes com este nome: um ficheiro CSV que armazena os detalhes dos IPs, um ficheiro de índice que armazena os índices dos IPs, um ficheiro JSON que armazena os detalhes e um ficheiro KML que armazena as localizações.-t {y,n,Y,N}, --checkTor {y,n,Y,N}
Especifica se pretende verificar cada endereço IP público contra os endereços IP dos relays TOR-w {y,n,Y,N}, --checkWhoIs {y,n,Y,N}
Especifica se pretende extrair informações WhoIs para cada endereço IP público-l {y,n,Y,N}, --checkLocations {y,n,Y,N}
Especifica se pretende geocodificar cada endereço IP público e extrair informações de localização usando -locationEndpoint LOCATIONENDPOINT
O endpoint REST predefinido para localização é "https://reallyfreegeoip.org/json/". Pode especificar um endpoint diferente, incluindo o placeholder . O resultado deve estar em JSON e incluir os seguintes campos: country_name, region_code, region_name, city, zip_code, time_zone, latitude, longitude, metro_code