#!/bin/bash

输入起始 IP 地址和结束 IP 地址

read -p '请输入起始 IP 地址:' start_ip read -p '请输入结束 IP 地址:' end_ip

对输入进行校验

if [[ ! $start_ip =~ ^[0-9]+.[0-9]+.[0-9]+.[0-9]+$ || ! $end_ip =~ ^[0-9]+.[0-9]+.[0-9]+.[0-9]+$ ]]; then echo 'IP 地址输入有误,请重新输入!' exit 1 fi

将 IP 地址转换为整数

start_int=$(printf "%d\n" "$(echo '$start_ip' | tr '.' '\n' | awk '{s = s * 256 + $1} END{print s}')") end_int=$(printf "%d\n" "$(echo '$end_ip' | tr '.' '\n' | awk '{s = s * 256 + $1} END{print s}')")

循环生成 IP 地址并输出到文件

for ((i=start_int; i<=end_int; i++)); do ip=$(printf "%d.%d.%d.%d\n" $((i>>24)) $(((i&0xffffff)>>16)) $(((i&0xffff)>>8)) $((i&0xff))) echo $ip >> test_ip.txt done

echo 'IP 地址生成完毕,已输出到 test_ip.txt 文件中!'

Shell 脚本:自动生成指定 IP 段的所有 IP 地址

原文地址: https://www.cveoy.top/t/topic/n1SF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录