以下是“数据包结构”图像的示例:http://freesoft.org/CIE/Course/Section3/7.htm
假设我有一个小型Python程序,它在X端口上进行侦听并捕获该数据包并将其保存到变量“data”中。
如何从数据中提取数据包信息?例如,假设我想阅读'版本',它只是:
print data[0:4] ?
我如何获得源IP地址?
我最近一直在做更多的套接字编码,并遇到了很多这些“数据包结构”图像。我还没弄明白如何将它们应用到我的代码中:/
答案 0 :(得分:0)
请注意,您的示例显示了一个IP标头 - 如果您只是使用套接字,则不会看到此信息(它已被系统IP和TCP堆栈消化)。
如果要捕获原始数据,请查看使用libpcap,这将允许原始数据包。您还可以使用tcpdump生成包含原始数据包的文件。
对于结构,如果data
是一个带有命令的字符串,则可以读取前4个字节。您可能希望将字符串编码为“十六进制”(或正常表示的整数),否则您将看到“垃圾”字符。
对于更强大的解包,use the struct module附带python。