如何获取有关参数的信息

2024-05-02 12:51:02 发布

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

下午好。请告诉我如何获得有关包的每个参数的信息?例如,我查看IP数据包具有哪些参数:

ls(IP)

结果:

version : BitField (4 bits) = (4)
ihl : BitField (4 bits) = (None)
tos : XByteField = (0)
len : ShortField = (None)
id : ShortField = (1)
flags : FlagsField (3 bits) = (<Flag 0 ()>)
frag : BitField (13 bits) = (0)
ttl : ByteField = (64)
proto : ByteEnumField = (0)
chksum : XShortField = (None)
src : SourceIPField = (None)
dst : DestIPField = (None)
options : PacketListField = ([])

我的问题是,如何获得有关参数ihl、tos、if等的信息。。。i、 例如,我可以在这些参数中指定什么,特定参数支持哪些值? 多谢各位


Tags: ipnone信息id参数lenversion数据包
2条回答

您可以列出类中的所有方法和字段

dir(IP)

但它没有给出细节

顺便说一句:您可以将它们作为任何其他列表进行筛选

list(name for name in dir(IP) if 'raw' in name)

当你忘记了某个名字并想找到它时,它会很有用


您可以在代码中显示文档字符串中的信息

help(IP)

help(IP.ihl)

它可以提供一些细节


最后,您可以在documentation中搜索,并找到scapy.layers.inet.IP


但要理解某些领域,您可能需要简单地学习TPC/IP和其他只使用的协议——它并不决定协议是如何定义的

这可能对你有帮助。使用Python内置函数dir()

from datetime import datetime

dir(datetime)

['add', 'class', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'ne', 'new', 'radd', 'reduce', 'reduce_ex', 'repr', 'rsub', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'astimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fold', 'fromisocalendar', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year']

相关问题 更多 >