【发布时间】:2016-12-28 16:14:58
【问题描述】:
我正在尝试用带有横幅抓取功能的 python 编写端口扫描器。
没有s.send('getBanner\n') 行(抓住横幅)我的脚本可以工作,它会打印打开的端口。
但是当我添加'getBanner' 行时,一个套接字错误显示'[Errn 32] Broken Pipe'。
我知道这个错误可能是因为客户端没有等到连接建立并关闭套接字。我该如何解决这个问题?
代码:
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()
【问题讨论】:
标签: python sockets network-programming broken-pipe