在Python中修改IPv4头中的Options字段

2024-09-28 01:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写一个有点非典型的traceroute应用程序。我有兴趣计算一个包到达目的地之前的跳跃次数。诀窍是我只对单个传出包进行探测感兴趣。我相信我可以对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或使用原始套接字。在


Tags: 函数ip应用程序rfcsocket次数感兴趣兴趣

热门问题