[英]Running a background process with Python
我正在嘗試發送GET請求,但是在開始請求之前,我想捕獲流量。 可以使用以下命令來捕獲流量:
dumpcap -i eth0 -f "udp port 53" -w dns.cap
在后台。 在捕獲數據包的同時,我需要通過發送一些URL發出一些請求。 現在,使用下面的代碼,看來我的捕獲代碼不起作用,甚至在我的文件夾中都看不到dns.cap文件。
有什么問題?
import requests
import os
import subprocess
import urllib
print "start capturing packets...\n"
#os.system("dumpcap -i eth0 -f \"udp port 53\" -w dns.cap"
os.spawnl(os.P_NOWAIT,'dumpcap -i eth0 -f \"udp port 53\" -w dns.cap')
print urllib.urlopen('http://www.google.com').read()
#resp = requests.get('http://httpbin.org')
#resp=requests.get('http://httpbin.org')
print "ok"
os.spanwl
被認為是老應改為subprocess.Popen
。 用os.spanwnl
命令替換os.spanwnl
調用:
subprocess.Popen(['/usr/bin/dumpcap', '-i', 'eth0', '-f', 'udp port 53',
'-w', '/tmp/dns.cap'])
最好在啟動轉儲后添加一些暫停(睡眠),以確保在發出請求時已建立捕獲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.