gpt4 book ai didi

python - 使用 "socket.setdefaulttimeout"设置默认超时

转载 作者:行者123 更新时间:2023-12-01 02:42:48 26 4
gpt4 key购买 nike

我正在尝试制作一个简单的端口扫描器:

socket.setdefaulttimeout(1)

try:
for port in range(lowport,highport):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#s.settimeout(1)
x = s.connect_ex((remoteServerIP, port))
if x == 0:
print "[+] Port {}: Open".format(port)
try:
s.settimeout(7)
s.send("blah")
print s.recv(100)

我的问题是,在“if”语句完成后,套接字超时是否会返回到默认值(1)(我相信它应该并且是大多数Python),或者我是否需要将其显式地放置在迭代中'对于每个端口,正如我在上面注释掉的那样。目标是超时(1)查看端口是否打开,但(7)接收横幅。

最佳答案

来自 socket.setdefaulttimeout 的文档:

socket.setdefaulttimeout(timeout)

Set the default timeout in seconds (float) for new socket objects. A value of None indicates that new socket objects have no timeout. When the socket module is first imported, the default is None.

超时是一个可配置参数,您在程序开始时设置一次,并且在执行期间一直保留,直到并且除非您再次显式更改它。

如果套接字通过设置自己的超时来覆盖默认值,其他套接字不会受到影响。

关于python - 使用 "socket.setdefaulttimeout"设置默认超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45498383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com