Compartir a través de


Cargas de ping personalizadas en Linux

En Linux, los procesos sin privilegios no pueden enviar paquetes IP sin procesar. La funcionalidad de Ping se implementa mediante la interfaz con la utilidad ping. Sin embargo, esta utilidad no admite 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.

Nuevo comportamiento

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 disruptivo

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 cap_net_raw capacidad usando la utilidad setcap.

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

Las APIs afectadas