Question

Je suis en train d'obtenir le code ICMP trouvé ici pour travailler . Cependant sur cette ligne:

Socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork,
                                       System.Net.Sockets.SocketType.Raw,
                                       System.Net.Sockets.ProtocolType.Icmp);

Je reçois SocketException: « Une tentative d'accès à une prise de manière interdite par ses autorisations d'accès » (code d'erreur natif: 10013)

L'exécution en mode administrateur est une (mauvaise) solution, mais comme je veux que mon programme de travail au niveau de l'utilisateur, que feriez-vous sugesst? D'autres approches ICMP est également la bienvenue.

Je suis en train de jouer avec « ClickOnce » paramètres de sécurité, ce qui n'a pas aidé.

Était-ce utile?

La solution

ICMP et raw sockets sont limitées aux utilisateurs d'administrateur depuis Windows 2000. Vous ne l'avez pas dit ce que vous essayez de faire, mais vous pouvez essayer l'espace de noms NetworkInformation pour atteindre votre objectif: NetworkInformation

Il comprend une classe Ping pour envoyer des demandes d'écho ICMP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top