网络IP未占用扫描脚本

意义:

        IP管理是确保网络资源得到有效利用和控制的一系列活动。为了识别释放Ip和剩余Ip的分布状态,针对数据库需要分配Ip和虚拟IP完成部署和集群管理等相关工作。

目的:

  1. 确保唯一性: 为网络中的每个设备分配一个唯一的IP地址,以保证通信的顺畅和避免地址冲突。

  2. 资源优化: 合理规划和使用IP地址资源,确保IP地址的高效分配,避免浪费。

  3. 网络扩展性: 支持网络的扩展,为新增设备和服务预留足够的IP地址空间。

  4. 安全性增强: 通过控制IP地址的分配和管理,加强网络安全,防止未授权访问和潜在的网络攻击。

开发语言:

python3

依赖包:

ipaddress

socket

脚本内容:

import socket
import ipaddress

def check_port(ip, port):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
            sock.settimeout(1.0)  # 设置超时时间
            result = sock.connect_ex((ip, port))
            if result == 0:
                return True
            else:
                return False
    except socket.error as e:
        print(f"Socket error: {e}")
        return False

def scan_ip_range(network, port):
    open_ports = []
    for ip in ipaddress.ip_network(network):
        host = str(ip)
        if check_port(host, port):
            print(f"Port {port} is open on {host}")
            open_ports.append(host)
    return open_ports

def write_to_file(ips, filename='list.txt'):
    with open(filename, 'w') as file:
        for ip in ips:
            file.write(ip + '\n')

def main():
    # 替换为你想要扫描的网段,例如"192.168.1.0/24"
    ip_network = "192.168.1.0/24"
    port = 3306  # MySQL默认端口

    open_ports_ips = scan_ip_range(ip_network, port)
    if open_ports_ips:
        write_to_file(open_ports_ips)
        print(f"Open ports found on: {open_ports_ips}")
    else:
        print("No open ports found.")

if __name__ == "__main__":
    main()

输出结果如下

汇总信息如下

一个数据库行业摸索的7年小白,计划在今年通过自己的能力构建一套企业级数据库管理平台,欢迎各位大佬投稿提供建议意见!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值