为了账号安全,请及时绑定邮箱和手机立即绑定

TCP 端口测试不准确,使用 `ip = ipaddress.ip_address

TCP 端口测试不准确,使用 `ip = ipaddress.ip_address

呼如林 2021-09-23 09:47:52
在这台测试机上,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 地址,然后将其转发到另一个功能并仍然获得正确的端口扫描测试?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信