次の方法で共有


Linux でのカスタム ping ペイロード

Linux では、特権のないプロセスは生の IP パケットを送信できません。 Ping 機能は、 ping ユーティリティとやり取りすることによって実装されます。 ただし、このユーティリティでは、インターネット制御メッセージ プロトコル (ICMP) ping パケットのカスタム ペイロードの指定はサポートされていません。 .NET 7 では、このようなケースのチェックが追加され、カスタムペイロードが指定されている場合には、例外をスローします。

以前の動作

以前のバージョンでは、ping パケット ペイロードは、特権のない Linux プロセスでは暗黙的に無視されました (つまり、送信されませんでした)。

新しい動作

.NET 7 以降では、特権のない Linux プロセスで実行されているときに、カスタム ping パケット ペイロードを送信しようとすると、PlatformNotSupportedException がスローされます。

導入されたバージョン

.NET 7

破壊的変更の種類

この変更は 、バイナリの互換性に影響する可能性があります。

変更の理由

ペイロードをサイレント に削除するのではなく、操作を実行できないことをユーザーに通知することをお勧めします。

ping ペイロードが必要な場合は、rootとしてアプリケーションを実行するか、cap_net_raw ユーティリティを使用してsetcap機能を付与します。

それ以外の場合は、カスタム ペイロードを受け入れない Ping.SendPingAsync のオーバーロードを使用するか、空の配列を渡します。

影響を受ける API