该脚本递归扫描给定文件夹中的每个文件,提取所有 IPv4 和 IPv6 地址,过滤出公网 IP 地址,然后查询这些 IP 地址的 TOR 中继、WhoIs 服务和地理位置服务。它输出 4 个文件:一个包含所有 IP 地址详细信息的 CSV 文件和一个 JSON 文件,一个包含所有找到的 IP 地址索引的 CSV 文件,以及一个包含所有收集到的地理位置的 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 个不同的文件:一个存储 IP 详细信息的 CSV 文件、一个存储 IP 索引的索引文件、一个存储详细信息的 JSON 文件以及一个存储地理位置的 KML 文件-t {y,n,Y,N}, --checkTor {y,n,Y,N}
指定是否要对照 TOR 中继 IP 地址检查每个公网 IP 地址-w {y,n,Y,N}, --checkWhoIs {y,n,Y,N}
指定是否要为每个公网 IP 地址提取 WhoIs 信息-l {y,n,Y,N}, --checkLocations {y,n,Y,N}
指定是否要对每个公网 IP 地址进行地理编码,并使用 https://reallyfreegeoip.org 提取位置信息-locationEndpoint LOCATIONENDPOINT
默认的地理位置 REST 端点为 "https://reallyfreegeoip.org/json/"。你可以指定不同的端点,包括 占位符。结果必须是 JSON 格式,并且必须包含以下字段:country_name, region_code, region_name, city, zip_code, time_zone, latitude, longitude, metro_code