Чтобы избавить вас от боли, вы должны использовать CIDR-адреса вместо строковых подстановочных знаков.Это общепринятое обозначение для сетей и разумных диапазонов IP-адресов.Вы найдете широкую поддержку этой нотации на любом языке.
В вашем случае сети будут
127.0.0.1/32 (or just simply 127.0.0.1)
192.168.0.0/16
200.0.0.0/8
. Вы можете использовать что-то вроде встроенного IPAddr
class или IPAddress gem для их анализа.
С помощью IPAddress gem вы можете сделать что-то вроде этого (не проверено):
range = IPAddress("192.168.0.0/16")
ip = IPAddress("192.168.3.5")
range.include? ip # returns true