import subprocess
nrange = "192.168.229."
for i in range(0, 254):
address = nrange + str(i)
res = subprocess.call(['ping', '-c', '3', address])
if res == 0:
print "ping to", address, "OK"
elif res == 2:
print "no response from", address
else:
print "ping to", address, "failed!"
root@kali:~/Desktop# ./pypsweep.py
^C./pysweep.py: line 3: nrange: command not found
./pysweep.py: line 5: syntax error unexpected toke `('
./pysweep.py: line 5: `for i in range (0, 254):'
root@kali:~/Desktop#
我遇到上述代码的问题。我试图通过Python编写ping扫描脚本以在bash中运行。我已经尝试过其他人围绕互联网发布的几个例子,但似乎并没有对我起作用。这段代码是我根据我能找到的最简单的例子编写的。我不确定我是否只是忽略了一个明显的错误或问题是什么。对此问题的任何帮助将不胜感激。
如果重要的话,这将在Kali Linux发行版上的VMware Workstation Pro上运行。
答案 0 :(得分:2)
您的代码没有shebang行。因此,运行此命令时:
root@kali:~/Desktop# ./pypsweep.py
shell尝试将./pypsweep.py解释为默认类型:shell脚本。这就是为什么你看到你看到的错误。
有两种解决方案。
明确调用python:
root @ kali:〜/ Desktop#python ./pypsweep.py
将此行添加到脚本的开头:
#!/usr/bin/python
如果你的python不在/ usr / bin中,请适当调整路径。