【问题标题】:Boost exception while trying to ping尝试 ping 时引发异常
【发布时间】:2013-11-26 14:10:32
【问题描述】:

我正在使用给定链接的示例来 ping 给定的 IP 列表
http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/example/icmp/ping.cpp
每当我尝试 ping IP 时,我都会在初始化时收到此异常
异常打开: 尝试以访问权限禁止的方式访问套接字
是什么导致了这个问题?
我在 Windows 7 64 位上运行它

【问题讨论】:

  • 你能粘贴你的代码吗?
  • 代码是您在链接中找到的代码的精确副本...代码在构造函数本身中给出异常

标签: c++ boost-asio


【解决方案1】:

出于安全原因,某些系统将原始套接字的使用限制为具有管理员权限的用户。 Boost.Asio 的 ICMP 套接字实现使用原始套接字,因此需要应用程序以管理员权限运行。 Windows documentation 声明:

原始套接字提供了操纵底层传输的能力,因此它们可用于构成安全威胁的恶意目的。因此,只有 Administrators 组的成员才能在 Windows 2000 及更高版本上创建 SOCK_RAW 类型的套接字。

Windows 提供了一个 IcmpSendEcho() 系列函数,可用于发送和处理 ICMP 回显请求/响应,而无需管理权限,因为未公开原始套接字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多