1. 程式人生 > 實用技巧 >python對埠進行掃描

python對埠進行掃描

使用cocket模組配合多執行緒對埠進行掃描,後續功能正在思考ing.

import socket
from multiprocessing.dummy import Pool as ThreadPool

def main():
    global host_ip
    host = input("Enter a host to scan:")
    startPort = int(input("Enter the start port:"))
    endPort = int(input("Enter the end port:"))
    processes_num = int(input("
Enter processes num :")) host_ip = socket.gethostbyname(host) ports = [] print('-' * 60) print('Please wait,scanning host',host_ip) print('-' * 60) socket.setdefaulttimeout(0.2) for port in range(startPort, endPort): ports.append(port) pool = ThreadPool(processes = processes_num) results
= pool.map(get_ip_status,ports) pool.close()#關閉程序池,不在接收新的程序 pool.join()#主執行緒阻塞等在子程序的退出 print('port scan end') def get_ip_status(port): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: server.connect((host_ip, port)) print('[+] {0} port {1} is open'.format(host_ip, port))
except Exception as err: pass finally: server.close() if __name__ == '__main__': main()

大佬們,這是我的菜鳥程式,有什麼問題及好的建議,希望隨時交流,聯絡方式:[email protected]