5.7 KiB
5.7 KiB
グローバル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 (サーバーステータス機能に必要)
インストール方法
- プロジェクトファイルをダウンロードして任意のディレクトリに配置します。
- 必要なパッケージをインストールします。
pip install discord.py aiohttp psutil
pip install discord.py aiohttp psutil
セットアップ方法
-
main.pyファイル内の以下の設定を編集します:TOKEN: DiscordのBot TokenCHANNEL_ID: 通知を送信するチャンネルIDCHECK_INTERVAL: IPアドレスチェックの間隔(秒)
# BOTの設定 TOKEN = 'あなたのDiscord Bot Token' # BOTトークン CHANNEL_ID = 000000000000000000 # チャンネルID(数字) CHECK_INTERVAL = 30 # 間隔(秒)
Bot設定方法
Discord Bot作成
- Discord Developer Portalにアクセスします。
- 「New Application」をクリックして、アプリケーション名を入力します。
- 左側のメニューから「Bot」を選択し、「Add Bot」をクリックします。
- 「Reset Token」をクリックしてトークンを取得し、
main.pyに記入します。 - 下にスクロールし、以下の項目を有効にします:
- MESSAGE CONTENT INTENT
- SERVER MEMBERS INTENT
- PRESENCE INTENT
- 左側のメニューから「OAuth2」→「URL Generator」を選択します。
- ScopesからBotを選択し、Bot Permissionsから必要な権限を選択します:
- Read Messages/View Channels
- Send Messages
- Manage Messages
- Embed Links
- Read Message History
- Add Reactions
- 生成されたURLを使ってBotをサーバーに招待します。
チャンネルIDの取得
- Discordの設定から「詳細設定」を開き、「開発者モード」を有効にします。
- Botを使用したいチャンネルを右クリックし、「IDをコピー」を選択します。
- コピーしたIDを
main.pyのCHANNEL_IDに設定します。
使用方法
Botの起動
python main.py
コマンド一覧
!ipreset: 通知チャンネルをリセットして新しいメッセージを送信します(管理者のみ)!ipclear: チャンネル内のメッセージをクリアして新しいステータスメッセージを送信します(管理者のみ)!ipstatus: 現在のIPチェックのステータスを表示します
ボタン操作
- 今すぐ更新: 現在のIPアドレスを即時に更新します
- サーバーステータス: サーバーのCPU、メモリ、ディスク使用率などを表示します
- PROXMOX: Proxmox管理画面へのリンクを生成します
自動起動の設定
systemdを使用する場合(Linux)
- 以下の内容で
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
- サービスファイルをsystemdディレクトリにコピーし、有効化します:
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アドレスを表示するため、信頼できるサーバーでのみ使用してください。
ライセンス
ライセンスファイルを参照してください。
謝辞
- discord.py - Discord APIのPythonラッパー
- psutil - システム情報取得ライブラリ
著作
© 2025 うっちぃの電脳日誌
https://uttili.com