Python ping 扫描脚本问题

Issue with Python ping sweep script

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 到 bash 中的 运行 的 ping 扫描脚本。我已经尝试了其他人在互联网上发布的几个示例,但似乎对我来说没有用。这段代码是我根据我能找到的最简单的示例编写的。我不确定我是否只是忽略了一个明显的错误或者可能是什么问题。非常感谢对此问题的任何帮助。

Kali Linux 发行版上的 VMware Workstation Pro 运行 如果这很重要的话。

您的代码没有 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,适当调整路径。