如何获取参数信息

问题描述 投票:0回答:2

下午好,请问如何获得一个包的各个参数的信息?请教一下,如何才能获得一个包的各个参数信息?比如,我看IP包有哪些参数。

ls(IP)

outcome:

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,等等的信息......也就是说,我可以在这些参数中指定什么,某个参数支持什么值? 非常感谢。

python linux scapy kali-linux
2个回答
0
投票

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

dir(IP)

但它并没有提供细节。

BTW:你可以像其他列表一样过滤它们。

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

当你忘了某个名字而又想找到它时,它就会很有用。


你可以在代码中显示docstrings的信息。

help(IP)

help(IP.ihl)

它可以提供一些细节。


最后你可以在 文件 而你发现 scapy.layer.inet.IP


但可能要了解一些领域,你必须简单地学习TPCIP和其他协议,这些协议包括 scapy 只使用--它并不决定协议如何定义。


1
投票

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

from datetime import datetime

dir(datetime)

['增加', '阶层', '脱色剂', '', '文档', '等式', '格式化', 'ge', '获取属性', 'gt', '散列', '启动', 'init_subclass', '', 'lt', '', '新的', '泥沙', '减少', '缩减', '重写', '', '设置tr', '大小', '', '', '子类钩', 'asimezone', 'combo', 'ctime', 'date', 'day', 'dst', 'fold', 'fromisocalendar', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'min', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year'] 。

© www.soinside.com 2019 - 2024. All rights reserved.