shell scripts 不就是用来利用和关联各种程序的么, 避免造轮子才是应该的
如果是在 debian 系, 12 楼 @
changshu 的答案最好
redhat 系有些不幸,没有 prips, 这个轮子似乎还是可以造一下
@
DravenJohnson 23 楼的实现不对, 1.0.16.10 到 1.0.17.0 之间的 ip 缺失
纯 Bash, 没觉得比其它的复杂, 还不依赖其它软件
usage: ./
prips.sh iplists_file
----
#!/usr/bin/env bash
ip2int() {
local i
local int
for i in {0..3}; do
((int <<= 8))
((int += $1[i]))
done
echo $int
}
int2ip() {
local i
int=$1
for i in {0..3}; do
((ip[i] = int & 255))
((int >>= 8))
done
echo ${ip[3]}.${ip[2]}.${ip[1]}.${ip[0]}
}
while read -ra ipl; do
s=(${ipl[0]//./ })
e=(${ipl[1]//./ })
for ((i = $(ip2int s); i <= $(ip2int e); i++)) {
int2ip $i
}
done < $1
----