ICMP в C #, SocketException - запрещено правами доступа - PullRequest
1 голос
/ 14 апреля 2009

Я пытаюсь заставить работать 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 Ответ

2 голосов
/ 14 апреля 2009

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

Включает класс Ping для отправки эхо-запросов ICMP.

...