用python抓取不同端口的横幅

用python抓取不同端口的横幅,python,sockets,python-2.7,network-programming,port,Python,Sockets,Python 2.7,Network Programming,Port,我正在编写一个脚本,从主机的公共端口获取横幅。我正在使用套接字进行连接,但我面临一些问题。代码如下: try: connsocket = socket(AF_INET, SOCK_STREAM) connsocket.settimeout( 5 ) connsocket.connect((ip, port)) connsocket.send("HEAD / HTTP/1.0") results = connsocket.recv(400)

我正在编写一个脚本,从主机的公共端口获取横幅。我正在使用套接字进行连接,但我面临一些问题。代码如下:

    try:
    connsocket = socket(AF_INET, SOCK_STREAM)
    connsocket.settimeout( 5 )
    connsocket.connect((ip, port))
    connsocket.send("HEAD / HTTP/1.0")
    results = connsocket.recv(400)
    connsocket.close()
    return str(results)

except:
    print '[ERROR]Failed to connect or Connection timed out'
主要有两个问题:

  • 我第一次将脚本运行到主机时,所有的横幅都被正确地检索到,但端口80除外,该端口随着超时而退出

  • 第二个问题是,当我将脚本重新启动到同一主机时,没有来自任何端口的响应

我怀疑第二个问题是由于连接仍然打开,并且脚本无法重新连接。对于第一个问题,我不知道为什么它不起作用

有什么想法吗?
问候。

删除并重试。。。除了然后看看发生了什么。@falsetru由于超时而退出,如果我删除超时,它就什么也不做,尝试永远连接。这只发生在端口80(通过telnet或它连接的浏览器)connsocket.send(“HEAD/HTTP/1.0\r\n\r\n”);“这个怎么样?”falsetru说,它现在似乎起作用了。我将在不同的情况下测试它,并发布结果。非常感谢。