python巡检主机是否宕机,及安装nmap和python-nmap

安装nmap

如果不安装的话,在python代码中会报错,提示在环境变量中找不到nmap


Windows中Nmap下载地址:https://nmap.org/download.html


Linux中有自带的命令

安装nmap模块

python3 -m pip3 install python-nmap

nmap命令详解

nmap 192.168.30.176	#扫描单个目标地址
nmap 192.168.0.1 192.168.0.6	#扫描多个目标地址
nmap 192.168.0.1-6	#扫描一个范围内的目标地址
nmap 192.168.0.100/24	#扫描目标地址所在的某个网段
nmap -iL C:\Users\smk\Desktop\targets.txt	#扫描主机列表targets.txt中的所有目标地址
nmap 192.168.0.100/24 -exclude 192.168.0.1	#扫描除某一个目标地址之外的所有目标地址
nmap 192.168.0.100/24 -excludefile C:\Users\smk\Desktop\targets.txt	#扫描除某一文件中的目标地址之外的目标地址
nmap 192.168.0.6 -p 135,443,445	#扫描某一目标地址的21、22、23、80端口
nmap --traceroute 192.168.0.6	#路由跟踪
nmap -sP 192.168.0.100/24	#所在C段的在线状况
nmap -O 192.168.0.6	#操作系统识别
nmap -Pn 192.168.1.1	#跳过Ping扫描(无ping扫描)
nmap -sV 192.168.1.1	#版本探测

python中nmap模块详解

import nmap

nm = nmap.PortScanner()

print(nm.scan('11.16.18.22', '22'))

'''
{'nmap': {'command_line': 'nmap -oX - -p 22 -sV 11.16.18.22', 'scaninfo': {'error': ['NSOCK ERROR [0.0500s] ssl_init_helper(): OpenSSL legacy provider failed to load.\r\n\r\n'], 'tcp': {'method': 'syn', 'services': '22'}}, 'scanstats': {'timestr': 'Thu Jan  5 18:03:56 2023', 'elapsed': '1.53', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}}, 'scan': {'11.16.18.22': {'hostnames': [{'name': '', 'type': ''}], 'addresses': {'ipv4': 
'11.16.18.22'}, 'vendor': {}, 'status': {'state': 'up', 'reason': 'echo-reply'}, 'tcp': {22: {'state': 'open', 'reason': 'syn-ack', 'name': 'ssh', 'product': 'OpenSSH', 'version': '7.4', 'extrainfo': 'protocol 2.0', 'conf': '10', 'cpe': 'cpe:/a:openbsd:openssh:9.1'}}}}}
'''

print(nm.scaninfo())
print(nm.command_line())
print(nm.all_hosts())
print(nm['11.16.18.22'])
print(nm['11.16.18.22'].all_protocols())
print(nm['11.16.18.22']['tcp'])
print(nm['11.16.18.22']['tcp'].keys())
print(nm['11.16.18.22'].has_tcp(21))
print(nm.scan(hosts='11.16.18.0/24', arguments='-n -sP -PE -PA21,23,80,3389') )

运维中巡检主机是否存活(在主机禁ping的情况下)

代码示例
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@文件        :jiancha_bazhan.py
@说明        :靶站巡检
@时间        :2023/01/04 16:26:18
@作者        :Guo
'''


import nmap
liaoning_bazhan = {
"山西":	"22.33.24.2",
"辽宁":	"60.1.16.22",
"河北":	"6.16.28.52",
"北京":"12.3.44.63"
}
import threading

def nm_ap(ip,ID):
    nm = nmap.PortScanner()

    nm.scan(ip, '22','-Pn')
    if 'open' in nm[ip]['tcp'][22]['state']:
#    print(ID,'   ',nm[ip]['tcp'][22]['state'])
        print('{}{}'.format(ID.ljust(15,' '),'22端口开放'.ljust(10,' ')))
    else:
        print('{}{}'.format(ID.ljust(10,' '),nm[ip]['tcp'][22]['state'].ljust(10,' ')))
def multi_thread():
    
    print("开始")

    threads = []
    for item in bazhan:

        threads.append(threading.Thread(target=nm_ap,args=(bazhan[item],item)))
    
    for thread in threads:
        thread.start()

    for thread  in threads:
        thread.join()
    print('结束')


if __name__ == "__main__":
    multi_thread()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值