bornman Postado Março 22, 2018 em 22:02 Compartilhar Postado Março 22, 2018 em 22:02 Fala pessoal, peguei na internet uma base para um port scanner em Python porém aparentemente ele está "travando", tentei fazer com menos portas para testar se era eu que não estava esperando o tempo necessário mas não deu certo também. Segue o código: import socket import subprocess import sys from datetime import datetime subprocess.call('cls', shell=True) host = input("Enter the host to scan: ") hostipv4 = socket.gethostbyname(host) print("-"*60) print(" Please wait, scanning", hostipv4,"..." ) print("-"*60) t1 = datetime.now() try: for port in range(1, 1025): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex((hostipv4, port)) if (result == 0): print("Port {}: Open").format(port) sock.close except socket.gaierror: print("Hostname could not be resolver. Exiting...") sys.exit() except socket.error: print("Couldn't connect to server.") sys.exit() t2 = datetime.now() total = t2-t1 print("Total scan time: ", total) Link para o comentário Compartilhar em outros sites More sharing options...
Visitante gnoo Postado Março 23, 2018 em 11:42 Compartilhar Postado Março 23, 2018 em 11:42 Estás com erro na sintaxe... Erro: print("Port {}: Open").format(port) Forma correta: print("Port {}: Open".format(port)) Após ter feito essa correção aqui funcionou perfeitmente, se quiseres ao aumentar o número de portos convém implementar um sistema de threads. Link para o comentário Compartilhar em outros sites More sharing options...
bornman Postado Março 24, 2018 em 12:17 Autor Compartilhar Postado Março 24, 2018 em 12:17 Em 23/03/2018 em 08:42, gnoo disse: Estás com erro na sintaxe... Erro: print("Port {}: Open").format(port) Forma correta: print("Port {}: Open".format(port)) Após ter feito essa correção aqui funcionou perfeitmente, se quiseres ao aumentar o número de portos convém implementar um sistema de threads. Opa, funcionou. Obrigado! Existe um jeito de scannear portas de forma mais rápida com o python? Link para o comentário Compartilhar em outros sites More sharing options...
Visitante gnoo Postado Março 24, 2018 em 16:36 Compartilhar Postado Março 24, 2018 em 16:36 A forma de o fazer mais rápido é com threads, pesquisa sobre o módulo threading do python. Mas é importante que sejas tu a escrever esse código, mesmo que tires ideias de códigos de terceiros, só fazer copy/paste não te vai ajudar muito. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.