J'essaye de coder un scanner de port en python avec l'accrochage de bannière.Le socket ne peut pas établir la connexion
Sans la ligne s.send('getBanner\n')
(qui saisit la bannière) mon script fonctionne, et il imprime les ports ouverts.
Mais lorsque j'ajoute la ligne 'getBanner'
, une erreur de socket indique '[Errn 32] Broken Pipe'
.
Je sais que cette erreur se produit probablement parce que les clients n'attendent pas que la connexion soit établie et ferment le socket. Comment puis-je resoudre ceci?
Le code:
import socket
host = '192.168.1.1'
for port in range(1,1024):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = s.connect_ex((host, port))
s.send(('getBanner\n'))
banner = s.recv(1024)
if result == 0:
print "[+] Port %s tcp/open" % port
print "[+] Banner: %s" % banner
s.close()
Cela a fonctionné comme prévu. Merci pour les conseils –