Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Linux kunnen niet-bevoegde processen geen onbewerkte IP-pakketten verzenden.
Ping Functionaliteit wordt geïmplementeerd door communicatie met het ping hulpprogramma. Dit hulpprogramma biedt echter geen ondersteuning voor het opgeven van een aangepaste nettolading voor de ICMP-pingpakketten (Internet Control Message Protocol). .NET 7 voegt een controle voor dergelijke gevallen toe en genereert een uitzondering als er een aangepaste nettolading is opgegeven.
Vorig gedrag
In eerdere versies werd de payload van het pingpakket op de achtergrond genegeerd (dat wil zeggen: het werd niet verzonden) bij niet-geprivilegieerde Linux-processen.
Nieuw gedrag
Vanaf .NET 7 wordt er een PlatformNotSupportedException gegenereerd als u probeert een aangepaste nettolading van pingpakketten te verzenden wanneer deze wordt uitgevoerd in een Linux-proces zonder bevoegdheden.
Geïntroduceerde versie
.NET 7
Type van brekende verandering
Deze wijziging kan van invloed zijn op binaire compatibiliteit.
Reden voor wijziging
Het is beter om de gebruiker te laten weten dat de bewerking niet kan worden uitgevoerd in plaats van de gegevens stilletjes te verwijderen.
Aanbevolen actie
Als een ping-lading nodig is, voert u de toepassing uit als root, of verleent u de cap_net_raw mogelijkheid met behulp van het setcap hulpprogramma.
Gebruik anders een overload van Ping.SendPingAsync die geen aangepaste payload accepteert of geef een lege array door.
Betreffende API's
- 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[])