如何获取有关参数的信息

时间:2020-05-15 13:15:54

标签: 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 : BitField (13 bits) = (0)
ttl : ByteField = (64)
proto : ByteEnumField = (0)
chksum : XShortField = (None)
src : SourceIPField = (None)
dst : DestIPField = (None)
options : PacketListField = ([])

我的问题是,如何获取有关参数ihl,tos,if等的信息,即,我可以在这些参数中指定什么,特定参数支持哪些值? 非常感谢。

2 个答案:

答案 0 :(得分:1)

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

from datetime import datetime

dir(datetime)

['添加”,“ ”,“ delattr ”,“ dir ”,“ < strong> doc ”, ' eq ','格式',' ge ',' getattribute ',' gt < / strong>, '哈希”,“ 初始化”,“ init_subclass ”,“ le ”,“ lt < / strong>, ' ne ”,“ ”,“ 交易”,“ 减少”,“ reduce_ex < / strong>, ' repr ',' rsub ',' setattr ',' sizeof ',' str < / strong>, ' sub ',' subclasshook ','astimezone','combine','ctime', 'date','day','dst','fold','fromisocalendar','fromisoformat', 'fromordinal','fromtimestamp','hour','isocalendar','isoformat', “ isoweekday”,“ max”,“ microsecond”,“ min”,“ minute”,“ month”,“ now”, “替换”,“分辨率”,“秒”,“ strftime”,“ strptime”,“时间”, 'timestamp','timetuple','timetz','today','toordinal','tzinfo', 'tzname','utcfromtimestamp','utcnow','utcoffset','utctimetuple', “工作日”,“年份”]

答案 1 :(得分:0)

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

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和scapy仅使用的其他协议-它不会决定协议的定义方式。