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.
Acción recomendada
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
- System.Net.NetworkInformation.Ping.Send(IPAddress, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.Send(IPAddress, Int32, Byte[])
- System.Net.NetworkInformation.Ping.Send(String, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.Send(String, Int32, Byte[])
- System.Net.NetworkInformation.Ping.SendAsync(IPAddress, Int32, Byte[], PingOptions, Object)
- System.Net.NetworkInformation.Ping.SendAsync(IPAddress, Int32, Byte[], Object)
- System.Net.NetworkInformation.Ping.SendAsync(String, Int32, Byte[], PingOptions, Object)
- System.Net.NetworkInformation.Ping.SendAsync(String, Int32, Byte[], Object)
- System.Net.NetworkInformation.Ping.SendPingAsync(IPAddress, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.SendPingAsync(IPAddress, Int32, Byte[])
- System.Net.NetworkInformation.Ping.SendPingAsync(String, Int32, Byte[], PingOptions)
- System.Net.NetworkInformation.Ping.SendPingAsync(String, Int32, Byte[])
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de