0

我正在用 python 编写一个有点非典型的跟踪路由应用程序。我有兴趣计算数据包在到达目的地之前所经过的跳数。诀窍是我只对使用单个传出数据包进行探测感兴趣。我相信我可以对 IPv4 选项字段进行一些修改来实现这一点。RFC 1393讨论了我认为我想要实现的内容。

问题来自于setsockopt我用来配置传出套接字以使 IPv4 标头按照我想要的方式的记录不充分的函数。

我能想到的最好的方法如下:

outputsocket.setsockopt(socket.IPPROTO_IP, socket.IP_OPTIONS, \
    '\x82\x0A\x00\x00\x00\x00\x00\x00\x12\x34\x56\x78')

(字节串来自RFC 1393的第 2.2 节)

然而,这给了我socket.error: [Errorno 22] Invalid argument

我能做些什么来完成这项工作?如果我的方法很混乱,我表示歉意,我对 python 或使用原始套接字并不完全满意。

4

0 回答 0