2012-06-08 15 views
5

Dato che l'ambiente Metro su Windows 8 è privo della maggior parte delle librerie di classi .NET framework o contiene una versione ridotta, è possibile eseguire un "ping" da un'applicazione in stile Metro? C'è un supporto per i socket, quindi suppongo ci sia speranza, ma non so da dove iniziare, poiché ogni esempio di "Ping C#" utilizza System.Net.NetworkInformation.Ping e non è disponibile in WinRT.È possibile scrivere una classe Ping in C# che verrà eseguita nell'ambiente Metro di Windows 8?

Ho anche esaminato il codice sorgente per Mono e la loro implementazione ping attiva ping.exe e restituisce il risultato dalla finestra di output standard della riga di comando.

risposta

5

No, sfortunatamente no. ICMP non è supportato in WinRT: IcmpCreateFile e le API Win32 correlate sono disponibili solo nella partizione API "desktop". ICMP può essere implementato usando socket raw ma poiché questi non sono supportati in WinRT (e in genere richiedono comunque l'elevazione), questa opzione non è disponibile.

Come sviluppatore di uno strumento di scansione di rete Windows Store (http://lanscan.rcook.org/), mi piacerebbe poterlo fare.

+2

Vorrei davvero poterlo fare anche io. Eseguo http://www.wp-networktools.com/ e ricevo continuamente recensioni negative perché l'app non eseguirà il ping degli indirizzi locali. Stavo cercando di portarlo su WinRT ma senza questa API otterrò recensioni così negative che non ne vale la pena. Peccato davvero, perché sarebbe davvero bello. – Nate

+0

Sì. Questo è esattamente il feedback che ho ricevuto da alcune persone riguardo a Lanscan! –

Problemi correlati