Python ping扫描脚本问题

时间:2016-11-02 19:16:24

标签: python linux bash for-loop ping

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上运行。

1 个答案:

答案 0 :(得分:2)

您的代码没有shebang行。因此,运行此命令时:

root@kali:~/Desktop# ./pypsweep.py

shell尝试将./pypsweep.py解释为默认类型:shell脚本。这就是为什么你看到你看到的错误。

有两种解决方案。

  1. 明确调用python:

    root @ kali:〜/ Desktop#python ./pypsweep.py

  2. 将此行添加到脚本的开头:

    #!/usr/bin/python
    

    如果你的python不在/ usr / bin中,请适当调整路径。