我正在尝试在 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/