2

我正在尝试在 Python 2.6 中实现 UDP traceroute 解决方案,但我无法理解为什么我需要 root 权限才能执行与操作系统附带的 traceroute 实用程序相同的操作。

运行此代码的环境将非常怀疑具有 root 权限,所以我是否更有可能不得不放弃 python 实现并编写一些东西来解析 UDP 模式下 OS 跟踪路由的输出?或者我在打开一个配置为self.rx = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP). 似乎socket.SOCK_RAW没有 root 权限是无法访问的,这有效地阻止了我使用在 python 中实现它所需的数据。

4

1 回答 1

0

我得出的结论是,我仅限于解析tracerouteusing的输出subprocesstraceroute能够通过使用setuidfor 部分代码有效地允许该部分代码以 root 身份运行来克服 root 要求。由于我无法在没有 root 权限的情况下建立这些权利,因此我不得不依赖 的存在,traceroute因为这两种情况更有可能发生。

于 2013-06-11T13:52:37.437 回答