icmp.Packetconn から長さ 0 の ICMP パケットのみを受信します

WBOY
リリース: 2024-02-05 21:24:04
転載
1209 人が閲覧しました

仅从 icmp.Packetconn 接收 0 长度的 ICMP 数据包

質問の内容

主な目的は、ポート上でデータを送信し、ポートに到達できない場合は受信する ICMP メッセージをリッスンすることで、開いている UDP ポートを検出することです。これを行うには、次の Go 関数を使用して goroutine として実行します。 リーリー

これは、ICMP ping と宛先到達不能を検出できますが、常に長さ 0 のメッセージを返します。例: ###

2023/10/11 14:38:32 メッセージ = ''、長さ = 0、送信元 IP = 127.0.0.1

メッセージを解析しようとしましたが、メッセージが空であるため、実行時エラーが返されました。また、go 実行ファイルに root 権限を与えましたが、それも機能しませんでした。

編集: OS は Ubuntu 20.04

正解

自分の間違いに気づきました...

初期化されていないバッファから読み取ろうとしました。 受信バッファに次の変更を加えると、問題が解決します:

リーリー

以上がicmp.Packetconn から長さ 0 の ICMP パケットのみを受信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート