日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python如何實(shí)時(shí)獲取tcpdump輸出

瀏覽:128日期:2022-07-11 09:57:15

一、背景

今天有個(gè)小需求,要確認(rèn)客戶端有沒有往服務(wù)端發(fā)送udp包,但為了減輕工作量,不想每次到機(jī)器上手動(dòng)執(zhí)行tcpdump抓包命令。于是就寫了個(gè)腳本來釋放人力。

二、代碼實(shí)現(xiàn)

整個(gè)腳本我還加了一些其他功能:時(shí)間戳、發(fā)送端IP提取,數(shù)據(jù)包分析,數(shù)據(jù)持久化等。這里都先去掉,僅記錄下簡(jiǎn)單的實(shí)時(shí)獲取tcpdump輸出功能。代碼如下:

# -*- coding: utf-8 -*-# !/usr/bin/env python# sudo tcpdump -tt -l -nn -c 5 -i enp4s0 udp port 514 or 51414import subprocesscmd = [’sudo’, ’tcpdump’, ’-tt’, ’-l’, ’-nn’, ’-c’, ’5’, ’-i’, ’enp4s0’, ’udp’, ’port’, ’514’, ’or’, ’51414’]proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)while True: line = proc.stdout.readline() line = line.strip() if not line: print(’tcpdump finished...’) break print(line)

輸出如下(實(shí)時(shí)):

wenyuanblog@localhost:/home/test/script# python tcpdump_udp.py tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on enp4s0, link-type EN10MB (Ethernet), capture size 262144 bytes1499774951.124178 IP 192.168.10.210.41974 > 192.168.10.251.514: UDP, length 1391499774953.125664 IP 192.168.10.210.54995 > 192.168.10.251.51414: UDP, length 1391499774956.128498 IP 192.168.10.210.56748 > 192.168.10.251.514: UDP, length 1391499774958.129918 IP 192.168.10.210.53883 > 192.168.10.251.51414: UDP, length 1391499774961.132921 IP 192.168.10.210.58803 > 192.168.10.251.514: UDP, length 1395 packets captured6 packets received by filter0 packets dropped by kerneltcpdump finished...

以上代碼相當(dāng)于手動(dòng)執(zhí)行了 sudo tcpdump -tt -l -nn -c 5 -i enp4s0 udp port 514 or 51414 這條命令。注意參數(shù)-l很重要(行顯)。

三、代碼實(shí)現(xiàn)(更新)

上面的代碼能實(shí)現(xiàn)tcpdump的功能,但是有一個(gè)問題:沒有做超時(shí)保護(hù)。即當(dāng)程序執(zhí)行時(shí)間過長(zhǎng)時(shí)kill該進(jìn)程(這里使用ctrl+c的方式)。要實(shí)現(xiàn)這個(gè)功能有很多種方案,例如定時(shí)器+多線程等,這里僅演示一種方案,代碼如下:

# -*- coding: utf-8 -*-# !/usr/bin/env python# sudo tcpdump -tt -l -nn -c 50 -i enp4s0 udp port 514 or 51414import subprocessimport signalimport timeimport osimport reimport jsonclass CmdServer: def __init__(self, cmd, timeout=120): ’’’ :param cmd: 執(zhí)行命令(列表形式) :param timeout: 任務(wù)超時(shí)時(shí)間(seconds,進(jìn)程運(yùn)行超過該時(shí)間,kill該進(jìn)程) :param taskname: 任務(wù)名稱(根據(jù)該任務(wù)名稱記錄命令輸出信息) ’’’ self.cmd = cmd self.timeout = timeout self.base_path = reduce(lambda x, y: os.path.dirname(x), range(1), os.path.abspath(__file__)) self.output_path = os.path.join(self.base_path, ’data.json’) self.udp_flow_list = [] self.begin_time = int(time.time()) # 執(zhí)行tcpdump任務(wù) def run(self): if os.path.exists(self.output_path): with open(self.output_path, ’r’) as f:self.udp_flow_list = json.load(f) proc = subprocess.Popen(self.cmd, stdout=subprocess.PIPE) stdout = ’’ while proc.poll() == None: current_time = int(time.time()) if current_time - self.begin_time >= self.timeout:print(’tcpdump timeout...’)proc.send_signal(signal.SIGINT)stdout = proc.stdout.read() if proc.poll() is not None and not stdout: print(’tcpdump finished...’) stdout = proc.stdout.read() stdout_list = stdout.split(’n’) if stdout_list: self._merge_data(stdout_list) self._save_data() # 數(shù)據(jù)合并(新增/更新) def _merge_data(self, stdout_list): for line in stdout_list: line = line.strip() if not line:continue timestamp = int(float(line.split(’IP’)[0].strip())) * 1000 # 源 src_ip_port_list = re.findall(r’IP(.+?)>’, line) if not src_ip_port_list:continue src_ip_port_str = src_ip_port_list[0].strip() src_ip = ’.’.join(src_ip_port_str.split(’.’)[0:4]) # 目的 dst_ip_port_list = re.findall(r’>(.+?):’, line) if not dst_ip_port_list:continue dst_ip_port_str = dst_ip_port_list[0].strip() dst_port = dst_ip_port_str.split(’.’)[-1] # 新增/更新latest_timestamp src_item = filter(lambda x: src_ip == x[’src_ip’], self.udp_flow_list) if src_item:src_item[0][’dst_port’] = dst_portsrc_item[0][’latest_timestamp’] = timestamp else:self.udp_flow_list.append(dict( src_ip=src_ip, dst_port=dst_port, latest_timestamp=timestamp)) # 保存數(shù)據(jù) def _save_data(self): # 寫入文件 with open(self.output_path, ’w’) as f: json.dump(self.udp_flow_list, f, encoding='utf-8', ensure_ascii=False)if __name__ == ’__main__’: cmd = [’sudo’, ’tcpdump’, ’-tt’, ’-l’, ’-nn’, ’-c’, ’5’, ’-i’, ’enp4s0’, ’udp’, ’port’, ’514’, ’or’, ’51414’] cmd_server = CmdServer(cmd, 10) cmd_server.run()

四、總結(jié)

比較簡(jiǎn)單,僅僅是記錄下。

以上就是python如何實(shí)時(shí)獲取tcpdump輸出的詳細(xì)內(nèi)容,更多關(guān)于python獲取tcpdump輸出的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
综合激情视频| 亚洲69av| 欧美黄色一区二区| 国产日韩欧美一区二区三区在线观看| 国产99亚洲| 亚洲欧洲一区| 视频一区二区三区在线| 模特精品在线| 亚洲精品少妇| 国产精品xxx在线观看| 精品理论电影在线| 亚洲福利一区| 日韩中文av| 精品久久不卡| 午夜视频精品| 久久国产人妖系列| 美女网站视频一区| 蜜臀va亚洲va欧美va天堂| 久久国产精品免费一区二区三区| 国产精品theporn| 国产精品久久久久久久免费观看 | 91久久视频| 日本欧美一区二区在线观看| 精品一区二区三区四区五区| 蜜桃成人av| 国产日产精品_国产精品毛片| www.com.cn成人| 免费看日韩精品| 麻豆精品视频在线观看免费| 免费av一区二区三区四区| 亚洲一区二区三区久久久| 国产精品jk白丝蜜臀av小说| 极品裸体白嫩激情啪啪国产精品| 精精国产xxxx视频在线播放| 欧美日韩国产传媒| 青草av.久久免费一区| av免费不卡国产观看| 99成人超碰| 欧美日韩一区二区三区在线电影| 麻豆精品国产91久久久久久| 亚洲激情中文| 日本免费在线视频不卡一不卡二| 成人欧美一区二区三区的电影| 免费精品国产| 国产毛片精品久久| 色婷婷久久久| 国产精品一区二区av交换| 日韩欧美字幕| 国产在线观看91一区二区三区| 91久久久精品国产| 91精品日本| 伊人久久亚洲美女图片| 日本综合精品一区| 亚洲一级网站| 日韩精品一页| 亚洲国产一区二区三区在线播放| 日韩avvvv在线播放| 日韩免费看片| 国产精品久久777777毛茸茸| 欧美性感美女一区二区| 久久中文字幕一区二区三区| 国产亚洲激情| 深夜视频一区二区| 日韩中文字幕麻豆| 中文字幕人成乱码在线观看| 亚洲区欧美区| 免费在线欧美黄色| 日韩精品中文字幕吗一区二区| 成人片免费看| 精品一区二区三区亚洲| 另类av一区二区| 美女网站视频一区| 欧美一区自拍| 自拍自偷一区二区三区| 日韩一区三区| 国精品产品一区| 偷拍亚洲精品| 日韩中文字幕区一区有砖一区| 国产亚洲电影| 日韩在线观看不卡| 精品五月天堂| 亚洲精品高潮| 久久国产精品亚洲77777| 在线人成日本视频| 欧美激情麻豆| 在线看片日韩| 六月婷婷一区| 免费污视频在线一区| 国产日产一区| 91精品福利观看| 一区在线免费| 精品91久久久久| 在线看片福利| 国产黄色一区| 日韩和欧美一区二区三区| 美女精品在线| 香蕉人人精品| 色网在线免费观看| 在线手机中文字幕| 久久精品亚洲一区二区| 国产精品sss在线观看av| 日韩精品免费观看视频| 亚洲欧美在线专区| 日韩午夜在线| 亚洲专区在线| 国产精品日韩久久久| 久久伦理在线| 亚洲经典在线| 韩国精品主播一区二区在线观看| 五月天av在线| 中文av在线全新| 青青久久av| 欧美日韩视频网站| 伊人久久av| 亚洲日本在线观看视频| 欧美福利专区| 99精品电影| 欧美高清一区| 美日韩精品视频| 亚洲一级网站| 日韩视频精品在线观看| 另类中文字幕国产精品| 蜜桃av在线播放| 久久久久97| 国产精品多人| 日韩高清一区二区| 你懂的国产精品| 精品久久亚洲| 国产一区二区三区久久| 精品亚洲精品| 国产精品99一区二区三| 国产一区二区三区视频在线| 精品一区二区三区四区五区| 精品一区电影| 精品香蕉视频| 人在线成免费视频| 久久精品国内一区二区三区水蜜桃| 久久激情网站| 三上悠亚国产精品一区二区三区| 91欧美在线| 亚洲免费成人av在线| 国产精品成人**免费视频| 国产美女久久| 国产极品一区| 97欧美在线视频| 久久男女视频| 久久精品不卡| 欧美日韩国产高清电影| 日韩精品一二三四| 欧美影院视频| 国产精品九九| 久久精品国产www456c0m| 夜夜嗨网站十八久久| 午夜影院欧美| 日韩一区欧美二区| 久久国产欧美日韩精品| 日韩av片子| 日韩视频二区| 欧美日韩午夜电影网| 婷婷成人在线| 亚洲精一区二区三区| 老司机免费视频一区二区| 日韩影院二区| 日韩在线卡一卡二| 久久精品二区亚洲w码| 欧美亚洲国产激情| 日韩精品第一| 日韩专区精品| 亚洲一区二区三区高清| 日韩欧美一区二区三区免费看| 久久久国产精品一区二区中文| 中文另类视频| 亚洲一二av| 一区视频在线| 久久久久久一区二区| 亚洲精品在线观看91| 国产日韩在线观看视频| 精品成人免费一区二区在线播放| 久久国产精品久久w女人spa| 国产精品大片| 不卡av一区二区| 国产精品毛片视频| 精品国产欧美日韩一区二区三区| 亚洲男女av一区二区| 亚洲日本三级| 亚洲爱爱视频| 欧美影院精品| 婷婷亚洲五月色综合| 国产精品久久777777毛茸茸| 欧美福利在线| 麻豆久久一区二区| 免费中文字幕日韩欧美| 国产自产自拍视频在线观看| 99精品视频在线观看免费播放| 99国产精品久久久久久久成人热| 日韩高清三区| 久久精品青草| 国产精品白丝av嫩草影院| 午夜欧美理论片| 日韩国产高清在线|