Привет, я нашел сценарий от Жиля весьма полезным, но работа только для сетей до 0.0.0.0/24
была ограничением, я расширил сценарий для работы с более крупными сетями до ] 0.0.0.0/16
возможно будет еще кому то полезно.
#!/bin/sh
# http://unix.stackexchange.com/questions/94448/how-to-add-an-ip-range-to-known-hosts
# answered Oct 11 '13 at 0:21 Gilles
# only working for networks up to 0.0.0.0/24
# Declan Forde - Increased the range up to 0.0.0.0/16 networks
NETWORKS="127.0.0.0/30 127.0.0.0/29 127.0.0.0/28 127.0.0.0/27 127.0.0.0/26 127.0.0.0/25 127.0.0.0/24 127.0.0.0/23 127.0.0.0/22 127.0.0.0/21 127.0.0.0/16"
for net in ${NETWORKS}
do
base=${net%/*}
bits=$((32 - ${net#*/}))
abc=${base%.*}
ab=${abc%.*}
c=${abc##*.}
d=${base##*.}
if [ $bits -gt 8 ] && [ $bits -le 16 ]
then
netbits=$((bits - 8))
bits=8
else
netbits=0
fi
netcount=0
while [ $netcount -lt $((2 ** netbits)) ]
do
count=0
while [ $count -lt $((2 ** bits)) ]
do
echo "$ab.$c.$((d + count))"
echo "$ab.$c.$((d + count)) ssh-rsa AAAAB3NzaC1yc." >>~/.ssh/known_hosts
count=$((count + 1))
done
netcount=$((netcount + 1))
c=$((c + 1))
done
done