自动化运维与python项目实战: CMDB自动化资产扫描(2)路由配置、视图函数

资产管理探测流程

  • 存活探测: 获取局域网内存活的IP列表
  • 主机探测: 获取系统版本(SN、版本、MAC地址)
  • 主机关系探测: 识别宿主主机和虚拟机的关系
  • 网络设备的探测: 探测网络设备信息(SN、设备名等),使用snmp协议
  • 其他设备的探测:

 

主机存活探测模块和工具

Nmap探测工具

Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。是一款用于网络发现和安全审计的网络安全工具。

 

  • 主机发现 - 识别网络上的主机。例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
nmap -n -sP 172.25.254.10
nmap -n -sP 172.25.254.0/24
  • 端口扫描 - 枚举目标主机上的开放端口
# Nmap默认端口的扫描范围1-10000
nmap -n -p 172.25.254.10
# 具体指定要扫描的端口为50-80
nmap -n -p50-80 172.25.254.10
# 具体指定要扫描的端口为22和80
nmap -n -p22,80 172.25.254.10
  • OS检测 - 确定网络设备的操作系统和硬件特性。
nmap -O 172.25.254.10

 

查看172.25.254.10这台主机是否开启?

nmap -sP -PE 172.25.254.10

 

查看172.25.254.0/24局域网内存活的主机信息及存活主机个数

nmap -sP -PE 172.25.254.0/24

 

Nmap的Python操作接口: python-nmap

首先需要安装python端的nmap模块

pip3 install python-nmap

视图层的实现
代码全部卸载views.py过于冗余,这里新建utils.py代码用于存放调用

#utils.py
import nmap

def get_active_hosts(host='172.25.254.10'):
    # 实例化对象, portScanner()类用于实现对指定主机进行端口扫描
    nm = nmap.PortScanner()
    # 以指定方式扫描指定主机或网段的指定端口
    result = nm.scan(hosts=host, arguments='-n -sP')
    # print("扫描结果: ", result)
    # 返回的扫描具体的nmap命令行
	# print("nmap命令行: ", nm.command_line())
	# 返回nmap扫描的主机清单,格式为列表类型
    # print("主机清单: ", nm.all_hosts())
    return nm.all_hosts()
##测试:
if __name__ == '__main__':
    get_active_hosts()

执行结果:

/usr/bin/python3.6 /root/PycharmProjects/CMDB/hostinfo/utils.py
扫描结果:  {'nmap': {'command_line': 'nmap -oX - -n -sP 172.25.254.10', 'scaninfo': {}, 'scanstats': {'timestr': 'Sat Aug  1 06:57:28 2020', 'elapsed': '0.00', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}}, 'scan': {'172.25.254.10': {'hostnames': [{'name': '', 'type': ''}], 'addresses': {'ipv4': '172.25.254.10'}, 'vendor': {}, 'status': {'state': 'up', 'reason': 'localhost-response'}}}}
主机清
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值