LINUX.ORG.RU

Слить 2 диапазона ip адресов

 


0

1

есть диапазоны ip адресов вида:

5.39.33.40-5.39.33.47 ES;
5.39.33.48-5.39.34.87 FR;
5.39.34.88-5.39.34.91 PL;
из 2 источников. Хочется их вместе объединить с приоритетом на 1 источник. Есть ли Ъ способы это сделать кроме перебора по ip адресам ?


$ IFS="-; " read ip1 ip2 country <<< "5.39.33.40-5.39.33.47 ES;"
$ echo $ip1 $ip2 $country
5.39.33.40 5.39.33.47 ES
$ IFS=. read -ra IP <<< "$ip1"
$ for((i=0;i<4;i++)); do ((ipn1=ipn1*256+${IP[i]})); done
echo $ipn1
86450472

Вот как-то так получаем значения IP в int32, сравниваем со следующей строкой и если разница на 1, то склеиваем и печатаем country1

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 2)

Я юзал питонный модуль netaddr (в стандартную поставку не входит).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.