我正在使用给定链接的样本来ping给定的IP列表
http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/example/icmp/ping.cpp
当我尝试ping IP时,我在初始化时自己得到这个例外
异常打开:尝试以访问权限禁止的方式访问套接字
造成这个问题的原因是什么?
我在Windows 7 64位上运行它
答案 0 :(得分:2)
出于安全原因,某些系统将原始套接字的使用限制为具有管理员权限的用户。 Boost.Asio的ICMP套接字实现使用原始套接字,因此需要应用程序以管理员权限运行。 Windows documentation声明:
原始套接字提供了操作底层传输的功能,因此它们可用于构成安全威胁的恶意目的。因此,只有Administrators组的成员才能在Windows 2000及更高版本上创建类型为
SOCK_RAW
的套接字。
Windows提供了IcmpSendEcho()
系列函数,可用于发送和处理ICMP echo请求/响应,而无需管理权限,因为未公开原始套接字。