pack = IP(dst=target)/ICMP()
resp = sr1(pack, timeout=2)
if resp == None:
self.output_console ("no response")
elif IP in resp:
if resp.getlayer(IP).ttl <= 64:
self.output_console("*"*20)
os = 'This Pc is using Linux'
else:
os1 = "This Pc is using Windows"
self.output_console ("ttl value %d => %s"%(resp.getlayer(IP).ttl)+ os)
self.output_console("*"*20)
可以引用局部变量“os”,你可以帮助我吗?
当你到达这一行时,警告告诉你:
self.output_console ("ttl value %d => %s"%(resp.getlayer(IP).ttl)+ os)
名称os
可能尚未绑定到任何对象。这将与NameError
崩溃。这可能是因为你在一个分支中使用os
作为名称,然后在另一个分支中使用os1
作为名称。
顺便说一下,检查Linux或Windows是否是这样的规范方法:
>>> import platform
>>> platform.system()
'Linux'
os
是标准库中的一个包。将它用作变量名称可能不是一个好主意