我的问题是类型'ip'
是str,但我需要整数。
所以我做了转换int(ip)
。然后我得到了错误
基数为10的int()的文字无效:
所以我做了一些研究,发现我必须把int int(float(ip))
。
现在我得到"无法将字符串转换为浮动"。
import socket
def retrieveBanner(ip, port):
s = socket.socket()
s.connect((int(float(ip)),port))
banner = s.recv(1024).decode()
print("Bitte geben Sie eine IP und ein Port ein")
ip = input("IP? ")
port = input("Port? ")
retrieveBanner(ip, port)
if ("NASFTPD" in banner):
print("Vulnerable")
答案 0 :(得分:0)
根据documentation,connect
期望一个元组(string, int)
,其中字符串是ip地址,int是端口。您可以通过这种方式修改代码来修复它:
s.connect((ip, int(port)))
希望它会有所帮助。
答案 1 :(得分:0)
要将字符串中的虚线表示法IP地址转换为您需要的整数:
i_ip = socket.inet_aton(ip)
"航标"是" ASCII到数字"的缩写。这适用于IPv4地址。