一 **
import socket
import multiprocessing
def ports(ports_service):
#獲取常用埠對應的服務名稱
for port in list(range(1,100))+[143,145,113,443,445,3389, 8080]:
try:
ports_service[port] = socket.getservbyport(port)
except socket.error:
pass
def ports_scan(host, ports_service):
ports_open =
try:
sock = socket.socket(socket.af_inet, socket.sock_stream)
#sock.settimeout(60)
except socket.error:
print('socket creation error')
sys.exit()
for port in ports_service:
try:
#嘗試連線指定埠
sock.connect((host,port))
#記錄開啟的埠
sock.close()
except socket.error:
pass
return ports_open
if __name__=='__main__':
m = multiprocessing.manager()
ports_service = dict()
results = dict()
ports(ports_service)
#建立程序池,允許最多8個程序同時執行
pool = multiprocessing.pool(processes=8)
net = '192.168.0.'
for host_number in map(str,range(105,106)):
host = net+host_number
#建立乙個新程序,同時記錄其執行結果
print('starting '+host+'...')
#關閉程序池,close()必須在join()之前呼叫
pool.close()
#等待程序池中的程序全部執行結束
pool.join()
#列印輸出結果
for host in results:
print('='*30)
print(host,'.'*10)
for port in results[host].get():
print(port, ':', ports_service[port])
二 執行結果
python指令碼 埠掃瞄
記錄在b站學習的知識 利用tcp原理,通過編寫python指令碼,來檢測某個主機的埠開放情況,下面介紹兩種掃瞄,syn掃瞄和fin掃瞄 實驗環境 準備工作 展示from scapy.layers.inet import ip,tcp from scapy.sendrecv import sr syn...
Python 內網埠掃瞄
import socket,threadpool ports def scan poort port ip 192.168.1.131 s socket.socket socket.af inet,socket.sock stream socket.socket 建立socket 例項 af ine...
如何利用 Python 實現快速埠掃瞄?
對線上伺服器進行埠掃瞄是一件很有用的事,可以驗證你的防火牆規則,避免暴漏不需要的服務。也可以知道你機器上開了哪些服務,不用等烏雲爆出來了才知道,有人黑進內網玩了好幾個月。哈哈,真事,伺服器被通過zabbix黑進來,開了乙個socket5的程序,自由進出。反正,這玩意很有用,本著奉獻精神,把 放出來,...