Scapy - 使用更改的IP地址从pcap文件发送数据包

时间:2016-01-06 20:54:57

标签: networking network-programming scapy

我收集了来自网络的数据包,并将其保存到文件* .pcap 我想更改src和dst ip地址并将其发送到网络。 我写了一个简单的脚本:

#! /usr/bin/env python

from scapy.all import *
from scapy import *
from scapy.utils import rdpcap
from scapy.utils import wrpcap

packets = rdpcap("/root/Desktop/500000pkt.pcap", 1000)

for pkt in packets:
    if pkt.haslayer(IP) == 1:
        pkt[IP].src = "10.0.1.2"
        pkt[IP].dst = "10.0.1.1"

#for pkt in packets:
#   pkt.display()

wrpcap("/root/Desktop/500000pkt_changed.pcap", packets)
sendpfast(packets)

我正在使用eth1接口。 执行此脚本后,我看到了:

WARNING: No route found for IPv6 destination :: (no default route?)
sending out eth1 
processing file: /tmp/scapylUGae4
Actual: 1000 packets (627010 bytes) sent in 0.09 seconds.       Rated: 6966778.0 bps, 53.15 Mbps, 11111.11 pps
Statistics for network device: eth1
    Attempted packets:         1000
    Successful packets:        1000
    Failed packets:            0
    Retried packets (ENOBUFS): 0
    Retried packets (EAGAIN):  0

在wireshark中,我观察网络​​流量,但没有任何反应。它的沉默。 从计算机ping到路由器是成功的。

我做错了什么?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

删除chksum字段以强制scapy重新计算它。

del pkt[IP].chksum