为什么 ping 在没有管理员权限的情况下也能工作?
您可能知道,如果没有管理权限,则无法使用 Windows 套接字 创建 RAW 套接字。问题是,我需要发送 ICMP 消息,因此我需要 RAW 套接字。问题:我的程序需要在没有管理权限的情况下运行。
这引出了我的问题,ping 工具如何在没有管理权限的情况下发送 ICMP 消息?
as you may know one is unable to create RAW sockets using Windows Sockets without having administrative priviliges. The problem is, that I need to send ICMP messages, thus I need RAW sockets. The Problem: My program needs to run without administrative privileges.
That lead me to the question, how does the ping tool send ICMP messages w/o administrative privileges?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尽管 ICMP 使用 RAW 套接字(在 Win2K 及更高版本上需要管理员权限),但 Microsoft 规避了自己的安全规则以允许其 ICMP API 通过。因此,不要直接使用 RAW 套接字发送您自己的 ICMP ping 消息。使用
IcmpSendEcho()
和相关功能代替。Although ICMP uses RAW sockets (which require admin rights on Win2K and later), Microsoft circumvents its own security rules to allow its ICMP APIs to get through. As such, don't use RAW sockets directly to send your own ICMP ping messages. Use
IcmpSendEcho()
and related functions instead.