文章目录

利用python脚本检查网段在线IP

行云流水
2022-04-22 / 0 评论 / 285 阅读 / 正在检测是否收录...

前言

ip段分配给项目之后,不清楚项目组已经使用了那些IP,用一个脚本检查当前在线IP

脚本

# -*- coding: utf-8 -*-
"""
Created on 2021-11-07 21:16:39
---------
@summary:
检查IP段存活IP
---------
@author: wxzy
"""
import os
import sys
import argparse
import ipaddress
from ping3 import ping


#定义变量
PROJECT = {
    '项目一': [
        '49.119.110.0/24',
        ],
    '项目三': [
        '60.13.119.176/28',
        ],
    '项目四': [
        '60.190.118.128/25',
        ],
    '项目五': [
        '61.128.125.0/25',
        '61.138.119.160/28',
        '61.234.118.0/25',
        ],
}


def ip_ping(ip_addr):
    """
    检查IP是否存活
    """
    os_code = ping(str(ip_addr),timeout=0.5)
    return os_code


def ping_check_alive(datadict):
    """
    检查存活ip
    """
    for name, nets in datadict.items():
        for net in nets:
            i = 1
            ip_net = ipaddress.ip_network(net, strict=False)
            for ip in ip_net.hosts():
                if ip_ping(ip):
                    print('{}-{}-{},{};'.format(name, net, ip, ip))
                    i += 1
                    #if i > 1:
                    #    break


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="检查网段存活IP")
    parser.add_argument("-c", "--check", action="store_true", help="检查项目存活IP")

    if not sys.argv[1:]:
        sys.argv.extend(['-h'])

    args = parser.parse_args()

    if args.check:
        ping_check_alive(PROJECT)

    exit()

执行

python3  check_alive.py

评论 (0)

取消
只有登录/注册用户才可评论