当我们从 udp 端口发送数据包时,如果网络返回无法访问的 ICMP 主机,我们会收到异常。该异常没有告诉我们任何有用的信息(例如 ICMP 数据包的内容)。
没问题,我们将只监听 ICMP,这将为我们提供所需的信息,同时忽略 UDP 端口上的异常。因此,打开一个原始套接字,侦听 ICMP 数据包并从那里开始。
在开发(Win XP)中工作正常,但在服务器 2008 上的生产中,似乎运行 exe 的安全上下文必须具有管理员权限才能打开原始套接字。这对于服务是没有用的。如果我理解微软在说什么,那么我们可以做我们想做的唯一方法就是在具有管理员权限的帐户下运行我们的服务。感觉有点像花生的大锤,更不用说在管理员帐户下运行面向网络的服务带来的潜在安全漏洞。
我真的希望我在这里错了,但我似乎找不到任何与上述内容相矛盾的东西。
有人有任何意见/提示或同情吗?