【发布时间】:2022-01-23 16:14:57
【问题描述】:
我是 Python 新手,在从一个函数调用变量以在另一个函数中使用时遇到问题。
第一个函数获取 localhost IP,第二个函数我想获取该 IP 并使用它来进行端口扫描。
我的开放端口函数出现错误 'AttributeError: 'function' object has no attribute 'ipv4''
非常感谢任何帮助。
def get_IP():
ip = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ip.connect(("8.8.8.8", 80))
print(ip.getsockname()[0])
ipv4 = ip.getsockname()[0]
ip.close()
return ipv4
def get_open_ports():
for port in range(1,65535):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((get_IP.ipv4, port))
if result ==0:
print(f"Port {port} is open")
s.close()
【问题讨论】:
-
result = s.connect_ex((get_IP(), port)),你可能想看看 Python 教程:docs.python.org/3/tutorial/controlflow.html#defining-functions -
函数
get_IP已经返回了ipv4的值。因此,您只需将get_IP.ipv4更改为get_IP()。即调用函数并获取其返回值
标签: python