您好,登錄后才能下訂單哦!
在Linux中判斷一臺主機是否可達,可以使用ping命令,而判斷端口是否打開,可以使用telnet命令,但是telnet命令沒有超時時間的參數,使用起來不是很方便,那么可以利用Python來完成一個端口掃描的功能
socket實現端口掃描
#!/usr/bin/env python import socket def get_ip_status(ip,port): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: server.connect((ip,port)) print('{0} port {1} is open'.format(ip, port)) except Exception as err: print('{0} port {1} is not open'.format(ip,port)) finally: server.close() if __name__ == '__main__': host = '10.0.0.11' for port in range(20,100): get_ip_status(host,port)
telnetlib實現端口掃描
import telnetlib def get_ip_status(ip,port): server = telnetlib.Telnet() # 創建一個Telnet對象 try: server.open(ip,port) # 利用Telnet對象的open方法進行tcp鏈接 print('{0} port {1} is open'.format(ip, port)) except Exception as err: print('{0} port {1} is not open'.format(ip,port)) finally: server.close() if __name__ == '__main__': host = '10.0.0.11' for port in range(20,100): get_ip_status(host,port)
多線程實現高效掃描
#!/usr/bin/env python import telnetlib import threading def get_ip_status(ip,port): server = telnetlib.Telnet() try: server.open(ip,port) print('{0} port {1} is open'.format(ip, port)) except Exception as err: print('{0} port {1} is not open'.format(ip,port)) finally: server.close() if __name__ == '__main__': host = '10.0.0.11' threads = [] for port in range(20,100): t = threading.Thread(target=get_ip_status,args=(host,port)) t.start() threads.append(t) for t in threads: t.join()
以上這篇python實現指定ip端口掃描方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。