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

标签 python django linux nmap

我正在尝试在 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 dict 脚本。

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

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

关于python - 有什么方法可以使用 'nmap' 端口扫描器,在我的 Django 应用程序上生成和输出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12444689/

相关文章:

python - 如何安静 SimpleHTTPServer?

Django博客APPS

python - TensorBoard 链接不会在浏览器中加载 TensorFlow 图页面(连接已重置)

python - Django:优化违反 DRY 的测试

python - 上传文件在 Django 中无法正常工作

linux - 在 bash 中如何为我正在后台处理的任意程序解析和/或重定向标准输出

linux - 我想将 find 的输出通过管道传输到文件中,只获取目录名

如果客户端停止(SIGSTOP),Python TCP 服务器将永远阻止发送给客户端

python - 使用 Flask 和 Peewee 进行分页

python - matplotlib 用非 ascii 和 LaTeX 字符将标题拆分为两行