Cargas de ping personalizadas en Linux

En Linux, los procesos sin privilegios no pueden enviar paquetes Raw IP. La funcionalidad de Ping se implementa mediante la interacción con la utilidad ping. Sin embargo, esta utilidad no es compatible con la especificación de una carga personalizada para los paquetes de ping del Protocolo de mensajes de control de Internet (ICMP). .NET 7 agrega una comprobación para estos casos y produce una excepción si se especifica una carga personalizada.

Comportamiento anterior

En versiones anteriores, la carga del paquete ping se omitió silenciosamente (es decir, no se envió) en procesos de Linux sin privilegios.

Comportamiento nuevo

A partir de .NET 7, se produce una excepción PlatformNotSupportedException si intenta enviar una carga de paquete ping personalizada al ejecutarse en un proceso de Linux sin privilegios.

Versión introducida

.NET 7

Tipo de cambio importante

Este cambio puede afectar a la compatibilidad binaria.

Motivo del cambio

Es mejor indicar al usuario que la operación no se puede realizar en lugar de quitar silenciosamente la carga.

Si se necesita una carga de ping, ejecute la aplicación como root o conceda la funcionalidad de cap_net_raw mediante la utilidad setcap.

De lo contrario, use una sobrecarga de Ping.SendPingAsync que no acepte una carga personalizada o pase una matriz vacía.

API afectadas