なぜこれが起こるのですか?注意深いお子様は、接続をリクエストするためにサーバーに送信するデータが異なることに気づくかもしれません:
最初の写真の情報は {"roomid":98284,"uid":271298361556770}です
2 番目の写真の情報is { "uid":276194535568357,"protover":2,"roomid":98284}
roomid は実際の部屋番号、uid はランダムに生成された数値の文字列で、コピーして直接ログインできます。
比較すると、2 番目のものには追加の "protover":2 パラメーターがあります。実際、最初のピクチャはモバイル クライアントのデータ パケットをキャプチャするもので、2 番目のピクチャはコンピュータの Web ページのデータ パケットをキャプチャするものです。したがって、この "protover":2 パラメータの有無にかかわらず、弾幕サーバーに接続できます。
したがって、パケットをキャプチャするときに最も簡単にデータをキャプチャできるのは携帯電話であり、次に wap 側、最後にコンピュータ側であると推測できます。
しかし、多くの場合、私たちがキャプチャするパケット データは、図 2 に示すように文字化けした文字列です。utf8 または gbk エンコーディングを使用しても、図 1 の効果を達成することはできません。
この種のデータは、実際には圧縮データ gzip の一種です。現在、Wireshark はこの圧縮データの解凍モードをサポートしていません。
現在、ウェブサイトは基本的に送信中は圧縮モードで送信されるため、キャプチャしたデータは完全に文字化けしており、起動する方法がありません。
図に示すように、私のブログのホームページにアクセスすると、クローリングサーバーから返信されたWebページデータはgzipモードになっており、私たちが普段アクセスしているWebページはブラウザによって解凍およびレンダリングされて表示されます。
Bilibiliサーバーがgzipデータを送信していると分析されているため、解決策は非常に簡単で、サードパーティのzlibパッケージまたはgzipパッケージをインストールすることでこの問題を解決できます。
以上がキャプチャされたパケット データが文字化けするとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。