[問題] 存檔問題(已解決)

作者: 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