ICMP в C#, SocketException - запрещено правами доступа
Я пытаюсь заставить найденный здесь код 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", которые не помогли.
1 ответ
ICMP и необработанные сокеты доступны только для администраторов Windows 2000. Вы не указали, что пытаетесь сделать, но вы можете попробовать пространство имен NetworkInformation для достижения вашей цели: NetworkInformation
Он включает класс Ping для отправки эхо-запросов ICMP.