Python 如何获取有关参数的信息

Python 如何获取有关参数的信息,python,linux,scapy,kali-linux,Python,Linux,Scapy,Kali Linux,下午好。请告诉我如何获得有关包的每个参数的信息?例如,我查看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 :

下午好。请告诉我如何获得有关包的每个参数的信息?例如,我查看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、 例如,我可以在这些参数中指定什么,特定参数支持哪些值?
非常感谢。

这可能会对您有所帮助。使用Python内置函数

['add'、'class'、'delattr'、'dir'、'doc', 'eq'、'format'、'ge'、'getattribute'、'gt', 'hash'、'init'、'init_子类'、'le'、'lt', “ne”、“new”、“radd”、“reduce”、“reduce_ex”, “repr”、“rsub”、“setattr”、“sizeof”、“str”, “sub”、“subclasshook”、“astimezone”、“combine”、“ctime”, “日期”、“日期”、“dst”、“折叠”、“fromisocalendar”、“fromisoformat”, “fromordinal”、“fromtimestamp”、“hour”、“isocalendar”、“isoformat”, ‘等工作日’、‘最大’、‘微秒’、‘最小’、‘分钟’、‘月份’、‘现在’, “替换”、“分辨率”、“秒”、“strftime”、“strptime”、“时间”, 'timestamp'、'timetuple'、'timetz'、'today'、'toordinal'、'tzinfo', “tzname”、“utcfromtimestamp”、“utcnow”、“utcoffset”、“utctimetuple”, “工作日”、“年”]


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

dir(IP)
但它没有给出细节

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

list(name for name in dir(IP) if 'raw' in name)
当你忘记了某个名字并想找到它时,它会很有用

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

help(IP)

help(IP.ihl)
它可以提供一些细节

最后你可以在搜索中找到


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

阅读文档?说实话,我不太擅长Python,说得客气一点。请给我举个例子。谢谢。@AlexRebell Python附带了很多内置函数,dir就是其中之一。我正在导入datetime,并使用dir尝试返回该对象的有效属性列表。感谢您提供的信息和示例。我认为在Scapy中有一些信息,例如,在IP数据包中有一个参数len,这个参数有一些值,参数可以采用某种形式,也就是说,每个参数都有自己的值语法,以及如何设置,带双引号,单引号或不带引号。
help(IP)

help(IP.ihl)