# グローバルIP検出変更通知Bot Discord上でサーバーのグローバルIPアドレスを監視し、変更があった場合に通知するBotです。PROXMOXなど自宅サーバーの管理に役立ちます。 **⚠️ 注意: このプログラムにはDiscord Bot Tokenが含まれています。配布前にご自身のTokenに置き換えてください。** ## ファイル構成 - `main.py`: Botの主要なコード - `ip_changes.log`: IPアドレス変更の履歴を記録するログファイル - `bot.log`: Bot実行時のログファイル - `README.md`: このファイル ## 機能 - グローバルIPアドレスの定期的な監視と表示 - IPアドレス変更時の自動通知 - サーバーステータス表示(CPU・メモリ・ディスク使用率など) - Proxmox管理画面へのリンク生成 - IPアドレス変更履歴のログ記録 ## 必要条件 - Python 3.8以上 - Discord Bot Token - 以下のPythonパッケージ: - discord.py - aiohttp - psutil (サーバーステータス機能に必要) ## インストール方法 1. プロジェクトファイルをダウンロードして任意のディレクトリに配置します。 2. 必要なパッケージをインストールします。 ```bash pip install discord.py aiohttp psutil ``` ```bash pip install discord.py aiohttp psutil ``` ## セットアップ方法 1. `main.py`ファイル内の以下の設定を編集します: - `TOKEN`: DiscordのBot Token - `CHANNEL_ID`: 通知を送信するチャンネルID - `CHECK_INTERVAL`: IPアドレスチェックの間隔(秒) ```python # BOTの設定 TOKEN = 'あなたのDiscord Bot Token' # BOTトークン CHANNEL_ID = 000000000000000000 # チャンネルID(数字) CHECK_INTERVAL = 30 # 間隔(秒) ``` ## Bot設定方法 ### Discord Bot作成 1. [Discord Developer Portal](https://discord.com/developers/applications)にアクセスします。 2. 「New Application」をクリックして、アプリケーション名を入力します。 3. 左側のメニューから「Bot」を選択し、「Add Bot」をクリックします。 4. 「Reset Token」をクリックしてトークンを取得し、`main.py`に記入します。 5. 下にスクロールし、以下の項目を有効にします: - MESSAGE CONTENT INTENT - SERVER MEMBERS INTENT - PRESENCE INTENT 6. 左側のメニューから「OAuth2」→「URL Generator」を選択します。 7. ScopesからBotを選択し、Bot Permissionsから必要な権限を選択します: - Read Messages/View Channels - Send Messages - Manage Messages - Embed Links - Read Message History - Add Reactions 8. 生成されたURLを使ってBotをサーバーに招待します。 ### チャンネルIDの取得 1. Discordの設定から「詳細設定」を開き、「開発者モード」を有効にします。 2. Botを使用したいチャンネルを右クリックし、「IDをコピー」を選択します。 3. コピーしたIDを`main.py`の`CHANNEL_ID`に設定します。 ## 使用方法 ### Botの起動 ```bash python main.py ``` ### コマンド一覧 - `!ipreset`: 通知チャンネルをリセットして新しいメッセージを送信します(管理者のみ) - `!ipclear`: チャンネル内のメッセージをクリアして新しいステータスメッセージを送信します(管理者のみ) - `!ipstatus`: 現在のIPチェックのステータスを表示します ### ボタン操作 - **今すぐ更新**: 現在のIPアドレスを即時に更新します - **サーバーステータス**: サーバーのCPU、メモリ、ディスク使用率などを表示します - **PROXMOX**: Proxmox管理画面へのリンクを生成します ## 自動起動の設定 ### systemdを使用する場合(Linux) 1. 以下の内容で`ip-monitor.service`ファイルを作成します: ``` [Unit] Description=Discord IP Monitor Bot After=network.target [Service] User=yourusername WorkingDirectory=/path/to/ip-monitor-bot ExecStart=/usr/bin/python3 /path/to/ip-monitor-bot/main.py Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ``` 1. サービスファイルをsystemdディレクトリにコピーし、有効化します: ```bash sudo cp ip-monitor.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable ip-monitor.service sudo systemctl start ip-monitor.service ``` ### Windowsの場合 Task Schedulerを使用して自動起動を設定できます。 ## トラブルシューティング - **Bot起動時のエラー**: Python依存関係が正しくインストールされているか確認してください。 - **IPアドレスの取得失敗**: インターネット接続を確認してください。 - **メッセージの送信失敗**: BotがDiscordチャンネルにアクセスする権限があるか確認してください。 - **psutilモジュールエラー**: サーバーステータス機能を使用するには`pip install psutil`を実行してください。 ## セキュリティに関する注意 - Discord Bot Tokenは秘密にしてください。誤って公開した場合は、Discord Developer Portalで再生成してください。 - このBotはグローバルIPアドレスを表示するため、信頼できるサーバーでのみ使用してください。 ## ライセンス [ライセンスファイル](LICENSE)を参照してください。 ## 謝辞 - [discord.py](https://github.com/Rapptz/discord.py) - Discord APIのPythonラッパー - [psutil](https://github.com/giampaolo/psutil) - システム情報取得ライブラリ ## 著作 © 2025 うっちぃの電脳日誌 https://uttili.com