Discord上でサーバーのグローバルIPアドレスを監視し、変更があった場合に通知するBot
Go to file
2025-11-10 15:28:19 +00:00
LICENSE LICENSE 2025-11-10 15:28:19 +00:00
main.py main.py 2025-11-10 15:20:41 +00:00
README.md README.md 2025-11-10 15:27:01 +00:00

グローバル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. 必要なパッケージをインストールします。
pip install discord.py aiohttp psutil
pip install discord.py aiohttp psutil

セットアップ方法

  1. main.pyファイル内の以下の設定を編集します:

    • TOKEN: DiscordのBot Token
    • CHANNEL_ID: 通知を送信するチャンネルID
    • CHECK_INTERVAL: IPアドレスチェックの間隔
    # BOTの設定
    TOKEN = 'あなたのDiscord Bot Token'  # BOTトークン
    CHANNEL_ID = 000000000000000000  # チャンネルID数字
    CHECK_INTERVAL = 30  # 間隔(秒)
    

Bot設定方法

Discord Bot作成

  1. Discord Developer Portalにアクセスします。
  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.pyCHANNEL_IDに設定します。

使用方法

Botの起動

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ディレクトリにコピーし、有効化します:
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