python對埠進行掃描
阿新 • • 發佈:2020-08-13
使用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]