我是Python的新手,我正在尝试执行这段代码导入Socket:
import socket
def retBanner(ip, port):
try:
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((ip,port))
banner = s.recv(1024)
return banner
except Exception as e:
return str(e)
def main():
ip1 = '10.0.0.12'
ip2 = '10.0.0.11'
port = 21
banner1 = retBanner(ip1, port)
if banner1:
print('[+] ' + ip1 + ': ' + banner1)
banner2 = retBanner(ip2, port)
if banner2:
print("[+] " + ip2 + ': ' + banner2)
if __name__ == '__main__':
main()
即使我只是尝试shell,
>>> import socket
>>> socket.setdefaulttimeout(2)
>>> s = socket.socket()
>>> s.connect(("10.0.0.12",21))
它抛出以下异常
[+] 10.0.0.12: [WinError 10061] No connection could be made because the target machine actively refused it
我想知道为什么,我关闭了防火墙..
问候!
答案 0 :(得分:1)
Slim
- 表示服务器端TCP不接受连接。因为上面没有应用程序正在侦听客户端尝试连接的端口。请检查您的服务器应用程序是否已启动并且是否正在侦听预期的端口。
答案 1 :(得分:0)
我会把它作为一个简单的评论,但是不允许它,因为我是一个声誉不大的新用户。 您是否有可能禁用此功能的代理设置?另外,你应该提一下这是哪个Python版本。
运行后,我发现我收到了错误
“banner1 = retBanner(ip1,port) NameError:名称'ip1'未定义“
因为你只在“main”中定义它而不是全局定义(在函数定义之外)。