
ディレクトリ内のすべてのテキストファイルから有効なIPアドレスを収集し、Whoisデータベース、TORリレー、および場所に対してチェックするPythonスクリプト。
このスクリプトは、指定されたフォルダ内のすべてのファイルを再帰的にスキャンし、すべてのIPv4およびIPv6アドレスを抽出し、パブリックIPアドレスをフィルタリングし、これらのIPに対してTORリレー、WhoIsサービス、およびLocationサービスを照会します。出力は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}
すべてのパブリックIPアドレスをTORリレーの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エンドポイントは "" です。プレースホルダを含む別のエンドポイントを指定できます。結果はJSON形式であり、次のフィールドを含む必要があります: country_name, region_code, region_name, city, zip_code, time_zone, latitude, longitude, metro_code