代码拉取完成,页面将自动刷新
同步操作将从 现任明教教主-乾颐堂/ElasticSearch_API 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import pyshark
import requests
from datetime import datetime, timedelta, timezone
headers = {'Host': '192.168.1.100:9200',
'Content-Type': 'application/json'}
cap = pyshark.FileCapture('cap-6-11.pcap', keep_packets=False) # 读取pcap文件,数据包被读取后,不在内存中保存!节约内存!
tzutc_0 = timezone(timedelta(hours=0)) # 设置时区为UTC
def write_pkt_mongodb(pkt):
pkt_dict = {}
# 使用Pyshark获取数据包中的所有字段
for layer in pkt.__dict__.get('layers'):
pkt_dict.update(layer.__dict__.get('_all_fields'))
pkt_dict_final = {}
# 把字段分割成为字典
for key, value in pkt_dict.items():
# 防止空键
if key == '' and 'Source GeoIP' in value:
value.split(':')
pkt_dict_final[value.split(':')[0].strip()] = value.split(':')[1].strip()
elif key == '':
continue
else:
# 替换键中的'.'到'_'
pkt_dict_final[key.replace('.', '_')] = value
# 格式为:2018-04-23T10:45:13.899Z. Note that we only have milliseconds and the T as separator and Z indicating UTC.
# E的时间为UTC,所以需要切换时区
pkt_dict_final.update({"sniff_time": pkt.sniff_time.astimezone(tzutc_0).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]+'Z'})
pkt_dict_final.update({'highest_layer': pkt.highest_layer})
# 把数据导入E
requests.post('http://192.168.1.100:9200/pyshark/pkts/', headers=headers, json=pkt_dict_final)
# 把函数应用到数据包
cap.apply_on_packets(write_pkt_mongodb)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。