有没有什么办法可以使用'nmap'端口扫描程序,在我的Django App上生成并输出结果

时间:2012-09-16 05:46:27

标签: python django linux nmap

我正在尝试在Django中创建一些网络应用程序,我想问一下:是否可以执行以下操作:客户端类型IP地址,而不是服务器使用'nmap'扫描它,之后结果如下传递给Django应用程序,而不是我用它做了很多东西。

只是想知道是否有可能成功,或者听起来很荒谬?

2 个答案:

答案 0 :(得分:1)

我的建议将是:

pout,perr = subprocess.Popen(['nmap', '192.168.1.2', '-oX', '-'], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

xml_results = pout.read()

有几个nmapXML - >如果你稍微google一下,Python dict脚本也会浮动。

这种方法存在一些问题 - 让我们称它为天真的方法,因为它不能很好地扩展,或处理诸如机器没有ping并且nmap回退到慢速扫描(这可能需要几个小时)取决于目标网络)

考虑使服务器异步运行nmap并向用户提供状态 - 以及取消正在进行的扫描的能力。

答案 1 :(得分:0)

Nmap在https://pypi.python.org/pypi/python-nmap有一个名为python-nmap的python库(或包装器?)。

您可以使用

进行安装

pip install python-nmap

您可以使用像celery这样的库在Django中使用它