from scapy.all import *
from scapy.layers.inet import IP,TCP,Ether,UDP,ICMP
print(dir(scapy.layers))
print(explore(scapy.layers.l2))
print("=====IP===========")
print(ls(IP))
print(ls(TCP))
print(ls(Ether))
print(ls(UDP))
print("==============================")
#构造数据包
from scapy.layers.inet import TCP, IP, UDP, ICMP
from scapy.layers.l2 import Ether
from scapy.all import *
#======构造包======
#3层的包
pkt = IP(src="192.168.56.1",dst="192.168.56.100")/UDP(sport=1880,dport=23) #UDP协议
print(pkt.show())
pkt = IP(src="192.168.56.1",dst="192.168.56.100")/TCP(sport=1880,dport=23) #TCP协议
print(pkt.show())
#2层的包
pkt = Ether(src="01:80:90:80:70:60",dst="ff-ff-ff-ff-ff-ff")
print(pkt.show())
#构造HTTP.ICMP的包
pkt = IP(dst="192.168.56.100")/ICMP()
# sr(pkt).show()
print("============")
sr1(pkt).show()
print("======summary======")
print(ls(pkt))
print(pkt.summary())
#======数据包的存储,读取
pkt1 = IP(src="192.168.56.1",dst="192.168.56.100")/TCP()
pkt2 = IP()/ICMP()
pkts = [pkt1,pkt2]
#保存为test.cap
# print(ls(pkt1))
# wrpcap("test.cap",pkts)
print("====read====")
rd = rdpcap("test.cap")
print(rd)
print(rd[0].summary())
print(rd[0].show())
print(conf.ifaces) #查看本机所有网卡
print(conf.route) #查看本机所有路由