意义:
IP管理是确保网络资源得到有效利用和控制的一系列活动。为了识别释放Ip和剩余Ip的分布状态,针对数据库需要分配Ip和虚拟IP完成部署和集群管理等相关工作。
目的:
-
确保唯一性: 为网络中的每个设备分配一个唯一的IP地址,以保证通信的顺畅和避免地址冲突。
-
资源优化: 合理规划和使用IP地址资源,确保IP地址的高效分配,避免浪费。
-
网络扩展性: 支持网络的扩展,为新增设备和服务预留足够的IP地址空间。
-
安全性增强: 通过控制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年小白,计划在今年通过自己的能力构建一套企业级数据库管理平台,欢迎各位大佬投稿提供建议意见!!!