From 3b336d6819bc804391610956d4c4df3beba5f7b8 Mon Sep 17 00:00:00 2001 From: uttili Date: Mon, 10 Nov 2025 15:27:01 +0000 Subject: [PATCH] README.md --- README.md | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7433130 --- /dev/null +++ b/README.md @@ -0,0 +1,165 @@ +# グローバル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 \ No newline at end of file