export to csv

main
yulonger's Desktop 2 years ago
parent 599edea784
commit ef870d6fbb

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/lab_public.iml" filepath="$PROJECT_DIR$/.idea/lab_public.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

File diff suppressed because it is too large Load Diff

@ -1,6 +1,16 @@
from scapy.all import * from scapy.all import *
from scapy.layers.inet import IP, UDP, TCP from scapy.layers.inet import IP, UDP, TCP
from scapy.layers.l2 import Ether from scapy.layers.l2 import Ether
import csv
def write_csv_from_list(l: list):
with open('csv_output.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
for row in l:
writer.writerow(row)
csvfile.close()
def cut_packet(pkt): def cut_packet(pkt):
@ -9,13 +19,14 @@ def cut_packet(pkt):
pad_len = 100 - len(pkt) pad_len = 100 - len(pkt)
pad = Padding() pad = Padding()
pad.load = '\x00' * pad_len pad.load = '\x00' * pad_len
pkt = pkt/pad pkt = pkt / pad
if len(pkt) > 100: if len(pkt) > 100:
return Raw(data[:100]) return Raw(data[:100])
return pkt return pkt
def process(): def process() -> list:
ret = []
pkts = rdpcap('vpn_aim_chat1a.pcap') pkts = rdpcap('vpn_aim_chat1a.pcap')
i = 0 i = 0
for pkt in pkts: for pkt in pkts:
@ -44,9 +55,14 @@ def process():
pkt = layer_before / raw(pad) / layer_after pkt = layer_before / raw(pad) / layer_after
pkt = cut_packet(pkt) pkt = cut_packet(pkt)
raw_pkt = hexstr(pkt)
wrpcap('output/packet_{0}.pcap'.format(i), [pkt]) # raw_pkt = pkt.show(dump=True)
one_line_list = raw_pkt[:300].split(" ")[:-1]
ret.append(one_line_list)
# wrpcap('output/packet_{0}.pcap'.format(i), [pkt])
i = i + 1 i = i + 1
# print(ret)
return ret
def read_pkt(filename: str): def read_pkt(filename: str):
@ -55,4 +71,4 @@ def read_pkt(filename: str):
# read_pkt("output/packet_1.pcap") # read_pkt("output/packet_1.pcap")
process() write_csv_from_list(process())

Binary file not shown.
Loading…
Cancel
Save