Python icmpv6客户端
|
我正在使用一个简单的icmpv6客户端,并且校验和存在一些问题
这是代码,wireshark显示校验和设置不正确,
追溯显示类似“ 0”的错误
import pcs, sys
from socket import *
from pcs.packets.ethernet import *
from pcs.packets.ipv6 import *
from pcs.packets.icmpv6 import *
class packet:
def __init__(self, src, dst, mac):
self.src = src
self.dst = dst
self.mac = mac
def construct(self):
e = ethernet()
e.src = ether_atob(\"de:de:de:de:de:de\")
e.dst = ether_atob(self.mac)
e.type = ETHERTYPE_IPV6
ip6 = ipv6()
ip6.version = 6
ip6.traffic_class = 0
ip6.flow = 0
ip6.length = 8 # icmpv6 packet length
ip6.next_header = IPPROTO_ICMPV6
ip6.hop = 255
ip6.src = inet_pton(AF_INET6, self.src)
ip6.dst = inet_pton(AF_INET6, self.dst)
icmp6 = icmpv6(ICMP6_ECHO_REQUEST)
icmp6.code = 0
icmp6.id = 0xf0
icmp6.seq = 1
icmp6.mtu = 1280
icmp6.checksum = 0
ip6.length = len(icmp6.getbytes())
ip6.flow = len(ip6.getbytes()) + ip6.length
icmp6.checksum = icmp6.cksum(ip6)
pkt = pcs.Chain([e, ip6, icmp6])
s = pcs.PcapConnector(\'eth0\')
s.write(pkt.bytes, len(pkt.bytes))
if __name__==\'__main__\':
p = packet(sys.argv[1], sys.argv[2], sys.argv[3])
p.construct()
没有找到相关结果
已邀请:
1 个回复
僻朵庙惩竣