1

我正在尝试在 Django 中创建一些网络应用程序,我想问的是:是否可以这样做:客户端类型 IP 地址,而不是服务器使用“nmap”扫描它,然后将结果传递给Django 应用程序,而不是我用它做很多事情。

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

4

2 回答 2

1

我的建议是这样的:

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

xml_results = pout.read()

如果你用谷歌搜索一下,还有一些 nmapXML -> Python dict 脚本也在浮动。

这种方法存在一些问题 - 让我们称之为幼稚的方法,因为它不能很好地扩展,或者处理诸如机器不 ping 和 nmap 回退到慢扫描之类的事情(这可能需要几个小时,具体取决于目标网络)

考虑制作一个异步运行 nmap 的服务器,并可以将状态返回给用户 - 以及取消正在进行的扫描的能力。

于 2012-09-16T06:43:05.563 回答
0

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

您可以使用安装它

pip install python-nmap

你可以使用一个库,就像celery在 Django 中使用它一样

于 2015-12-28T13:20:30.450 回答