Global-IP-Detection-Change-.../README.md
2025-11-10 15:27:01 +00:00

165 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# グローバル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