0

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

4

2 回答 2

2

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

dir(IP)

但它没有提供细节。

顺便说一句:您可以将它们过滤为任何其他列表

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

当您忘记某个名称并想找到它时,它会很有用。


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

help(IP)

help(IP.ihl)

它可以提供一些细节。


最后你可以在文档中搜索,你会找到scapy.layers.inet.IP


但可能要了解某些领域,您必须简单地学习 TPC/IP 和其他scapy仅使用的协议 - 它不决定如何定义协议。

于 2020-05-15T14:26:40.830 回答
1

这可能会对您有所帮助。使用 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', '分辨率','秒','strftime','strptime','time','timestamp','timetuple','timetz','today','toordinal','tzinfo','tzname','utcfromtimestamp' , 'utcnow', 'utcoffset', 'utctimetuple', '工作日', '年份']

于 2020-05-15T13:23:57.763 回答