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

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

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

瀏覽:130日期: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ù)持久化等。這里都先去掉,僅記錄下簡單的實(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í)間過長時(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é)

比較簡單,僅僅是記錄下。

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

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
不卡视频在线| а√在线中文在线新版| 久久丁香四色| 国产精品亚洲二区| 日本成人在线网站| 影音先锋久久精品| 国产亚洲激情| 天堂精品久久久久| 成人三级高清视频在线看| 日韩国产一区二| 国产一精品一av一免费爽爽| 午夜精品久久久久久久久久蜜桃| 久久久久美女| 欧美日韩尤物久久| 日韩免费久久| 日韩亚洲精品在线| 五月天综合网站| 亚洲欧洲日韩| 国产精品手机在线播放| 日韩av福利| 久久午夜视频| 日韩国产激情| 午夜久久免费观看| 国产精品乱战久久久| 日韩在线第七页| 欧美激情亚洲| 日韩一级欧洲| 国产高清亚洲| 亚洲电影在线| 欧美激情日韩| 国产视频一区二| 夜夜精品视频| 亚洲成av人片一区二区密柚| 丝袜诱惑制服诱惑色一区在线观看 | 夜夜精品视频| 老牛国内精品亚洲成av人片| 精品三级在线观看视频| 久久精品主播| 中文字幕一区二区三区日韩精品 | 亚洲精一区二区三区| 日韩av专区| 亚洲激情久久| 精品欧美视频| 老司机精品久久| 激情欧美一区二区三区| 精品久久91| 国产毛片精品久久| 性欧美xxxx免费岛国不卡电影| 国产精品亚洲四区在线观看| 天堂久久av| 亚洲精品福利| 蜜桃视频在线观看一区| 亚洲一区二区三区高清不卡| 日韩在线短视频| 欧美韩一区二区| 国产精成人品2018| 亚洲视频二区| 日韩欧乱色一区二区三区在线| 日韩欧美午夜| 欧美成人综合| 亚洲一区欧美二区| 一区二区国产在线| 欧美特黄一级大片| 欧美日韩视频| 99精品综合| 亚洲欧美久久久| 日韩在线观看一区二区| 亚洲国产成人精品女人| 综合在线一区| 国产精品老牛| 欧美日韩午夜电影网| 日韩精品五月天| 国产精品一区二区精品视频观看| 日韩极品在线观看| 国产极品一区| 在线天堂中文资源最新版| 午夜av不卡| 国产日韩电影| 老色鬼久久亚洲一区二区| 日本中文字幕一区二区视频| 中文字幕成在线观看| 今天的高清视频免费播放成人| 亚洲精品高潮| 国产情侣一区| 国产麻豆一区二区三区| 精品国产一区二| 日韩在线二区| 综合激情网站| 久久精品福利| аⅴ资源天堂资源库在线| 国产精品一二| 日韩精品一区二区三区中文字幕| 欧美日韩午夜| 国产精品免费看| 精品三区视频| 婷婷综合福利| 999国产精品视频| 日韩成人av影视| 亚洲一区不卡| 日韩一区二区三区免费视频| 国产美女久久| 啪啪国产精品| 日本一区二区三区视频在线看| 亚洲成人va| 精品日韩一区| 欧美精品福利| 老牛国产精品一区的观看方式| 国产精品乱战久久久| 高清久久精品| 久久精品青草| 日韩精品亚洲一区二区三区免费| 欧美丝袜一区| 日韩电影免费在线观看| 欧美亚洲综合视频| 亚洲色图国产| 欧美另类综合| 久久久久网站| 欧美好骚综合网| 红杏一区二区三区| 一区二区精品| 手机精品视频在线观看| 婷婷激情图片久久| 成人一二三区| 日本成人中文字幕| 亚洲精品乱码久久久久久蜜桃麻豆| www.九色在线| 日韩久久视频| 99成人在线视频| 亚洲午夜91| 欧美日韩国产在线观看网站| 97在线精品| 精品欧美一区二区三区在线观看| 久久久亚洲一区| 成人羞羞视频在线看网址| 欧美91在线|欧美| 韩日一区二区| 99久久精品网| 日韩av免费| 亚洲伦乱视频| 中文国产一区| 欧美1区二区| 国产精品99久久精品| 国产一区二区三区四区大秀| 午夜精品一区二区三区国产| 亚洲精品无播放器在线播放| 欧美在线观看天堂一区二区三区| 久久超级碰碰| 欧美日韩激情在线一区二区三区| av成人国产| 国产精品欧美一区二区三区不卡| 久久精品三级| 婷婷色综合网| 青青国产精品| 精品国产三区在线| 久久久久国产精品一区二区| 亚洲日本欧美| 精品国产第一福利网站| 中文亚洲免费| 国产日韩中文在线中文字幕| 久久久天天操| 国产情侣一区| 欧美一区二区三区激情视频| 青青草伊人久久| 偷拍精品精品一区二区三区| 视频一区中文字幕| 欧美国产精品| 蜜臀av在线播放一区二区三区| 日本va欧美va瓶| 精品日韩毛片| 精品国产乱码久久久| 男女男精品视频网| 999国产精品永久免费视频app| 日韩高清在线观看一区二区| 日韩欧美一区免费| 日韩精品中文字幕吗一区二区 | japanese国产精品| 国产精品成人自拍| 免费观看在线综合| 免费日韩成人| 日韩欧美四区| 久久不射中文字幕| 日韩国产欧美| 国产精品成人a在线观看| 欧美精品aa| 欧美日韩va| 日韩国产精品久久久| 免费av一区| 欧洲av一区二区| 美女一区网站| 99久久亚洲精品蜜臀| 国产精品原创| 国产精品亚洲产品| 免费国产自线拍一欧美视频| 国产一区二区三区网| 喷白浆一区二区| 亚洲国产成人精品女人| 美女久久久久久| 五月激情久久| 精品国内亚洲2022精品成人| 亚洲精品高潮|