首页 > 解决方案 > 格式错误的 IP Scapy

问题描述

我的目标是开发一个脚本,可以将 IP 数据包发送到任何主机到不同子网中的任何其他主机。现在一切似乎都在工作,除了我的 IP 数据包格式不正确,所以 scapy 无法发送它。

def sendIPMessage(interfaceName, dst_ip, routerIP, message):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.bind(("", port))

    src_addr = get_mac_address(interface=interfaceName)

    my_ip = get_ip_address(interfaceName)
    netmask = ipaddress.ip_address(dst_ip) in ipaddress.ip_network(my_ip)
    if netmask is True:  # if dst is in the same network
        arp_MAC = sendArpMesage(interfaceName, dst_ip)
    else:
        arp_MAC = sendArpMesage(interfaceName, routerIP)

    ether = Ether(src=str(src_addr), dst=str(arp_MAC))
    print(ether.show())

    size = len(message) + 14
    ip = IP(src=my_ip, dst=dst_ip, proto=17, ihl=5, len=size, ttl=5, chksum=0)
    #print(ip.show())

    payload = Raw(message)

    packet = ether / ip / msg
    del packet[IP].chksum
    packet = packet.__class__(bytes(packet)) # same as packet.show2()

    print(packet.show())

    success = send(packet)

    if success is not None:
        print(success.show)
    else:
        print("success is None")

这是 show() 信息

Begin emission:
*Finished sending 1 packets.

Received 1 packets, got 1 answers, remaining 0 packets
###[ Ethernet ]### 
  dst       = 4e:98:22:86:f6:75
  src       = 00:00:00:00:00:11
  type      = LOOP

None
###[ Ethernet ]### 
  dst       = 4e:98:22:86:f6:75
  src       = 00:00:00:00:00:11
  type      = IPv4
###[ IP ]### 
     version   = 4
     ihl       = 5
     tos       = 0x0
     len       = 28
     id        = 1
     flags     = 
     frag      = 0
     ttl       = 5
     proto     = udp
     chksum    = 0xe9c2
     src       = 192.168.1.101
     dst       = 10.0.0.1
     \options   \
###[ UDP ]### 
        sport     = 21608
        dport     = 26995
        len       = 8297
        chksum    = 0x7320
###[ Padding ]### 
           load      = 'a test'

None
.
Sent 1 packets.
success is None

这就是wireshark目前的样子 在此处输入图像描述 在此处输入图像描述

我不确定问题是否是因为校验和值不对齐,但任何创建此数据包的帮助将不胜感激

标签: networkingudpipscapy

解决方案


推荐阅读