有什么方法可以使用'nmap'端口扫描器在我的 Django 应用程序上生成和输出结果



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

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

我的建议大致如下:

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

如果你谷歌一下,也有几个nmapXML -> Python字典脚本

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

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

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

您可以使用以下方法安装它

pip install python-nmap

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

相关内容

最新更新