2013-11-26 55 views
1

我使用給定鏈路平安IP
http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/example/icmp/ping.cpp
的定列表的樣品當過我嘗試平一個IP我在初始化的時候本身
異常得到這個例外打開:試圖通過其訪問權限禁止訪問某個套接字
導致此問題的原因是什麼?
我在Windows 7上運行它64位升壓例外,同時嘗試ping

+0

你能粘貼你的代碼嗎? –

+0

該代碼是您在鏈接中找到的代碼的精確副本...代碼在構造函數本身中發出異常 – bhawesh

回答

2

出於安全原因,某些系統將使用原始套接字限制爲具有管理員權限的用戶。 Boost.Asio的ICMP套接字實現使用原始套接字,因此需要應用程序以管理員權限運行。 Windows documentation指出:

原始套接字提供了操縱底層傳輸的能力,因此它們可用於構成安全威脅的惡意目的。因此,只有管理員組的成員才能在Windows 2000和更高版本上創建類型爲SOCK_RAW的套接字。

Windows提供了一個IcmpSendEcho()函數家族,可以用來發送和處理ICMP迴應請求/響應而不需要管理權限,因爲原始套接字不公開。