나는 배너 잡는 방법으로 파이썬에서 포트 스캐너를 코딩하려고합니다.소켓이 연결을 설정할 수 없습니다.
내 배너가 붙어있는 s.send('getBanner\n')
행이 없으면 내 스크립트가 작동하고 열린 포트가 인쇄됩니다.
그러나 'getBanner'
행을 추가하면 소켓 오류로 이 표시됩니다.
클라이언트가 연결이 설정되고 소켓을 닫을 때까지 기다리지 않으므로이 오류가 발생할 가능성이 높습니다. 이 문제를 어떻게 해결할 수 있습니까?
코드 :
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()
예상대로 작동했습니다. 조언 주셔서 감사합니다. –