ICMP в C#, SocketException – запрещено правами доступа

StackOverflow https://stackoverflow.com/questions/745602

  •  09-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить ICMP-код находится здесь работать.Однако в этой строке:

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

Я получаю SocketException:«Была предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа» (собственный код ошибки:10013)

Запуск в режиме администратора — одно (плохое) решение, но, поскольку я хочу, чтобы моя программа работала на уровне пользователя, что бы вы посоветовали?Другие подходы ICMP также приветствуются.

Я пытался поиграть с настройками безопасности «ClickOnce», но это не помогло.

Это было полезно?

Решение

ICMP и raw-сокеты доступны только администраторам, начиная с Windows 2000.Вы не указали, что пытаетесь сделать, но вы можете попробовать пространство имен NetworkInformation для достижения своей цели: Информация о сети

Он включает в себя пинг класс для отправки эхо-запросов ICMP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top