Вообще такая себе идея проверять принадлежность адреса подсети с помощью строковых операций. Мне кажется лучше вместо баша заюзать питоновский скрипт и сделать все правильно. ВОт такие функции могут пригодиться:
def mask(bitcount):
return 2**bitcount-1 << (32-bitcount)
def ip2int(ip):
return sum(256**i*int(octet) for i, octet in enumerate(reversed(ip.split('.'))))
def addr_in_network(addr, network):
net, mask_size = network.split('/')
mask_value = mask(int(mask_size))
return ip2int(addr) & mask_value == ip2int(net) & mask_value