Discordでリンクを共有すると、タイトル、画像、または概要が記載された小さなプレビューカードが表示されることがよくあります。 これはDiscordbotというBotを使用して作成されています。 この記事では、この仕組みについて、また、ウェブサイトの所有者がトラフィックを認識して確認する方法について説明します。
Discordがリンクプレビューを生成する方法
誰かがDiscordメッセージでリンクを共有すると、Discordbotは自動的にそのリンク先にアクセスして、ページに関する情報(タイトル、概要、画像など)を取得します。 この情報は、チャットに表示されるプレビューカードを作成するために使用されます。
これは、リンクがメッセージで実際に共有されるときにのみ行われます。 勝手にウェブサイトを継続的にスキャンしたり、巡回したりすることはありません。
リンク先が画像または動画の場合は、次回の読み込み速度を上げるため、コピーをしばらく保存することもあります。 誰かがその画像または動画を表示するとき、それは元のウェブサイトから直接取得されるのではなく、Discord独自のサーバーから送られます。 そのため閲覧者のIPアドレスなどの情報は、ファイルをホストするサイトには内密に保たれます。
Discordbot
Discordbotは、リンク先にアクセスしてプレビューを構築するツールです。 ウェブサイトを所有している人は、いつDiscordbotがサイトにアクセスしたかを知りたいかもしれません。そうすることで、少し異なるデータを表示したり、ファイアウォールが誤ってDiscordbotをブロックしていないか確認したりするのでしょう。
リクエストを認識する方法は2つあります。
- ユーザーエージェント(何がリクエストしているかを識別する短いテキスト)を見る。
- リクエスト元のIPアドレスを確認する。
Discordbotを特定する
Discordbotが行うすべてのリクエストには、次のようなユーザーエージェントが含まれています。
Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)
そのテキストのどこかに「Discordbot」という単語がないか確認します。 それ以外の部分は、時間の経過と共に変更される可能性があるため、文字列全体が一致すると思わないでください。
Discordトラフィックを確認する
リクエストが本当にDiscordから届いたかどうかを確認するには、そのIPアドレスがパブリックIPアドレス範囲の公式リストにあるか確認してください。 これは2つの形式(jsonとtxt)で発行されるため、プログラムで確認することができます。 範囲は変更される場合があるので、このリストを時々再確認することをおすすめします。