Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
settimeout()不是';t在Python 2.7(端口扫描程序)中工作_Python_Python 2.7_Sockets - Fatal编程技术网

settimeout()不是';t在Python 2.7(端口扫描程序)中工作

settimeout()不是';t在Python 2.7(端口扫描程序)中工作,python,python-2.7,sockets,Python,Python 2.7,Sockets,我试着编写一个小端口扫描仪,但我想我可以通过在关闭的端口上设置超时来修复缓慢的扫描。。。但这在这种情况下是行不通的 这是我扫描端口的功能: def connHost(THost、TPort、output=None): 尝试: socket.settimeout(3) 插座连接((THost,TPort)) 打印彩色(“[+]%d/tcp打开”,“绿色”)%t端口 如果输出!=无: 文件=打开(输出“a”) file.write(“[+]端口:%d已打开\n”%t端口) file.close()文

我试着编写一个小端口扫描仪,但我想我可以通过在关闭的端口上设置超时来修复缓慢的扫描。。。但这在这种情况下是行不通的

这是我扫描端口的功能:

def connHost(THost、TPort、output=None):
尝试:
socket.settimeout(3)
插座连接((THost,TPort))
打印彩色(“[+]%d/tcp打开”,“绿色”)%t端口
如果输出!=无:
文件=打开(输出“a”)
file.write(“[+]端口:%d已打开\n”%t端口)
file.close()文件
除:
打印彩色('[-]%d/tcp close',红色')%t端口
最后:
socket.close()
顺便说一下,
output
变量没有问题,它是在新创建的文件中输出打开的端口的特性

因此,每当我运行脚本时,它都会显示以下错误:

如果您想查看完整的源代码,这里有一个指向my laggy scanner的链接(不设置超时功能):


感谢您查看GitHub上的源代码,您没有使用类-这就是我在注释中链接的方法不起作用的原因

您很可能会遇到此错误,因为您正在对引用而不是实例调用
settimeout()
——您从未实例化变量“socket”

您可以找到有关
bound
unbound
方法的更多信息

另一个注意事项:从中可以看出,使用
*
作为导入整个模块通常是不常规的

“…它将一组未知的名称引入到解释器中,可能会隐藏一些您已经定义的内容。”


你为什么要使用Python 2.7?大学项目,Python 2.7是我的选修语言,而我的主修课程是网站设计。这能回答你的问题吗@gmdev Nthng使用3种方法中的任何一种进行了更改我在最后上传时没有创建引用。。。但当我加上超时时,它给了我更多的错误。。。所以我直接在每个命令上调用套接字。。。另外,我在阅读stackoverflow的答案后使用了这种技术。所以,我对此非常确定。好吧,只是好奇-除了,try没有捕捉到错误。没有,它是。。。我拍摄的屏幕截图是在删除了try-except块之后。。。只是为了调试并查看它捕获错误的位置。您能否使用引发错误的代码(包括您实例化套接字的代码)更新您的问题?
s = # initialize socket here
s.settimeout(3)