scapy

from scapy.all  import IP, ls
pkt = IP(dst='192.168.1.101')
ls(pkt)
#分层是通过符号/实现的,如果一个数据包是由多层协议组合而成,那么这些协议之间用/分开,按照协议由底层而上的顺序
#从左到右的排列,列如 Ethen()/IP()/TCP()

lsc() #列出scapy里面的函数

raw() #以字节格式显示数据包的内容

pkt.summary() #使用不超过一行的摘要内容来简单描述数据包
pkt.show() #使用展开视图的方式显示包的详细信息

wrpcap("文件名", pkt) #将数据包写入指定文件中
pkts = rdpcap("文件名") #将数据包从文件中读出

send() #用来发送IP数据包
sendp() #用来发送ether数据包 这两个函数只发不收

ans ,uans = sr(pkt) #返回值是两个列表,第一个是收到了应答的包和对应的应答,第二个是未收到的应答包
sr1() #sr()和sr1()主要用于IP地址
srp() #srp()用于MAC地址, 这三个函数用来发送和接收数据包

sniff(filter = "",iface = "any" ,prn =function ,count =N,) #第一个参数filter ,可以用来对数据包进行过滤。 filter = "host 192.168.1.1"
第二个参数是在按个网卡上抓包。
伯克利包过滤(BPF)限定符有一下3种:
Type 这种限定符表示指代的对象。如IP地址,子网或者端口等,host表示主机名和IP,net表示子网,
    port表示端口。默认是host
Dir 这种限定符表示数据包传输的方向,src表示源地址,dst表示目的地址,
Proto 这种限定符表示与数据包匹配的协议类型。常见有ether ,IP ,ARP,TCT等。
































原文地址:https://www.cnblogs.com/liu1983/p/13675724.html