在这台测试机上,tcp/80是在听,而tcp/4444不是在听。(我已经用 验证了这一点netstat -an)如果我只是将args.ip值传递给ip,并将其转发给scan()函数,则扫描结果总是准确的。ip = args.ip正常输出:C:\>python script.py 127.0.0.1Port number: 80Connecting to 127.0.0.1:80OK 127.0.0.1:80C:\>python script.py 127.0.0.1Port number: 4444Connecting to 127.0.0.1:4444FAIL 127.0.0.1:4444C:\>但是,当我尝试使用以下功能验证 IP 地址时ip = ipaddress.ip_address(args.ip)扫描结果总是错误的。错误的输出... tcp/80 已启动并正在运行:C:\>python script.py 127.0.0.1Port number: 80Connecting to 127.0.0.1:80FAIL 127.0.0.1:80这段代码有什么问题?import socket, argparse, ipaddressdef main(): global ip parser = argparse.ArgumentParser() parser.add_argument('-u') group = parser.add_mutually_exclusive_group() group.add_argument('-i') group.add_argument('ip', nargs='?') args = parser.parse_args() if args.i: print("IP Address is .. " + args.i) elif args.ip: ip = ipaddress.ip_address(args.ip) # Prob #ip = args.ip # OK scan() elif args.u: print("URL is " + args.u) else: print('No argument provided')def scan(): port = input('Port number: ') print('Connecting to %s:%s' % (ip,port)) try: s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, int(port))) print('OK %s:%s' % (ip, port)) except: print('FAIL %s:%s' % (ip, port))main()是否有可能验证 IP 地址,然后将其转发到另一个功能并仍然获得正确的端口扫描测试?
添加回答
举报
0/150
提交
取消