主な目的は、ポート上でデータを送信し、ポートに到達できない場合は受信する 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 サイトの他の関連記事を参照してください。