注意
* scapy在windows下需要安裝npcap,**使用的python版本是3.8
**如下
首先匯入所需要的模組
先定義乙個具體的ping方法import ipaddress
import multiprocessing
import time
from scapy.
allimport
*from random import randint
啟用多程序執行ping方法def
scapy_ping
(host)
: id_ip = randint(1,
65535
)# 隨機產生ip id位
id_ping = randint(1,
65535
)# 隨機產生ping id位
seq_ping = randint(1,
65535
)# 隨機產生ping序列號位
# ping指令會使用icmp傳輸協議,icmp報文中要封裝ip頭部
packet = ip(dst=host, ttl=64,
id=id_ip)
/ icmp(
id=id_ping, seq=seq_ping)
/ b'welcome'
res = sr1(packet, timeout=
2, verbose=
false
)if res:
('[*] '
+ host +
' is active'
) os._exit(
3)
主程式呼叫def
scapy_ping_scan
(network)
: net = ipaddress.ip_network(network)
ip_processes =
for ip in net:
ip_addr =
str(ip)
ping_one = multiprocessing.process(target=scapy_ping, args=
(ip_addr,))
ping_one.start(
) time.sleep(
0.1)
# 防止程序速度過快,目標不執行
# ip_processes[ip_addr] = ping_one
'''ip_list =
for ip,process in ip_processes.items():
if process.exitcode == 3:
else:
process.terminate()
return sorted(ip_list)'''
測試結果if __name__ ==
'__main__'
: t1 = time.time(
) alive_ip = scapy_ping_scan(sys.ar**[1]
)# 1.0.0.0/24
for ip in alive_ip:
print(ip)'''
t2 =time.time(
(t2-t1)
Python實現多程序
python可以實現多執行緒,但是因為global interpreter lock gil python的多執行緒只能使用乙個cpu核心,即乙個時間只有乙個執行緒在執行,多執行緒只是不同執行緒之間的切換,對多核cpu來說,就是巨大的浪費。如4核cpu,實際上只利用了乙個核,cpu利用率只有25 要...
python 實現多程序
方法一 from urllib import request from multiprocessing import process import os def url,kwargs print 當前程序id os.getpid os.getppid os.getpid 獲取當前程序id,os.ge...
python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...