Condividi tramite


Payload ping personalizzati su Linux

In Linux i processi senza privilegi non possono inviare pacchetti IP non elaborati. Ping la funzionalità viene implementata interfacciandosi con l'utilità ping . Tuttavia, questa utilità non supporta la specifica di un payload personalizzato per i pacchetti ping ICMP (Internet Control Message Protocol). .NET 7 aggiunge un controllo per tali casi e genera un'eccezione se viene specificato un payload personalizzato.

Comportamento precedente

Nelle versioni precedenti il payload del pacchetto ping è stato ignorato in modo invisibile all'utente (ovvero non è stato inviato) nei processi Linux senza privilegi.

Nuovo comportamento

A partire da .NET 7, viene generata un'eccezione PlatformNotSupportedException se si tenta di inviare un payload di pacchetto ping personalizzato durante l'esecuzione in un processo Linux senza privilegi.

Versione introdotta

.NET 7

Tipo di cambiamento che interrompe la compatibilità

Questa modifica può influire sulla compatibilità binaria.

Motivo della modifica

È preferibile segnalare all'utente che l'operazione non può essere eseguita invece di eliminare automaticamente il payload.

Se è necessario un payload del ping, eseguire l'applicazione come root, oppure concedere l'autorizzazione cap_net_raw utilizzando l'utilità setcap.

In caso contrario, usare un overload di Ping.SendPingAsync che non accetta un payload personalizzato o passare un array vuoto.

Le API interessate