[问题] 存盘问题(已解决)

楼主: Dong0129 (阿东跟上面讲的情况一样b)   2015-04-19 23:31:54
各位版友好,
最近在写Scapy的东西,
但存盘的地方...我不知道是哪里出了问题...
File:
100.100.100.100 1 10.1.1.1
200.200.200.200 2 10.2.2.1
100.100.100.200 3 10.1.1.2
.
.
.
File资料依序分别是IP位置、代号、重配的IP
然后接下来是我code的scapy程式
目的是要把封包档里符合IP位置的项目转换成重配的IP
rfd=open("File","r")
for line in rfd.read()splitlines():
items,item2,item3=line.split('\t')
pkts=rdpcap("pcapfilename")
for pkt in pkts:
if pkt[IP].src==item1:
pkt[IP].src=item3
if pkt[IP].dst==item1:
pkt[IP].dst=item3
wrpcap("new_pcapfilename",pkts)
rfd.close()
执行过后,
新产生的PCAP档内IP位置并没有被替换掉...
它重新存了原档...
请问程式码有误吗?
已解决
_____________________________________________________________________
刚刚重新re一遍程式,
应该要把pkts=rdpcap("pcapfilename")
拿到for循环外面放才对,
即:
rfd=open(...)
pkts=rdpcap(...)
for line in ...:
谢谢各位的指点。
作者: ug945 (ug945)   2015-04-20 00:00:00
看不出来这跟Scrapy有什么关系如果是输出入有问题 建议先用测试资料模拟输出入
作者: ccwang002 (亮)   2015-04-20 00:17:00
没看到这只程式哪里写档案了,你只读了 rfdrfd 读了之后改内容要再写回去,是 wrdpcap 做吗?
作者: qoo1991 (笨哲)   2015-04-20 00:24:00
呃 你只读档 然后还是存一样东西回去= =然后我是不知道你想IP做啥 这样做没改checksum 你的封包就全烂了要修改后再存回去还是正确的要重算IPv4 header checksum只改IP 没改checksum 送不出去的 Dst host 会把它丢掉.这是计网的尝试*常识 另外你说收到我想应该是scapy帮你重算了我的建议是你改完IP后直接用sendp 就直接重送sendp(rdpcap("/tmp/pcapfile")) # tcpreplay不需要在存PCAP回去 参考这篇吧 http://goo.gl/yCd3eD

Links booklink

Contact Us: admin [ a t ] ucptt.com