Расширяя ответ AB - вы можете преобразовать весь список в нотацию CIDR, используя
for each in `cut -f2 -d":" ad | tr "-" ":"` ; do netmask $each 2>/dev/null; done
Или для обозначения IP/Netmask с
for each in `cut -f2 -d":" ad | tr "-" ":"` ; do netmask -s $each 2>/dev/null; done
Таким образом, чтобы протолкнуть все IP-адреса из определенного диапазона через определенный интерфейс, вы можете сделать что-то вроде
Собрав его вместе, вы можете создать команду со скриптом, как показано ниже: удалите "echo" и завершите команду iptables в соответствии с вашими требованиями:
#! /bin/bash
TMPFILE="/dev/shm/$$.del"
for each in `cut -f2 -d":" ad | tr "-" ":"`
do
netmask -s $each 2>/dev/null;
done > $TMPFILE
while read -r each
do
ROUTE=${each%/*}
NETMASK=${each#*/}
echo /sbin/route add $ROUTE netmask $NETMASK ....
done <$TMPFILE