我有一些IP地址:
127.0.0.1
192.168.*
200.*
如何快速轻松地将给定的IP地址与这些范围进行匹配。可能存在数千种模式,如上所述。
答案 0 :(得分:3)
为了避免痛苦,您应该使用CIDR addresses而不是字符串通配符。这是网络和理智的IP范围的普遍接受的符号。您可以在任何语言中找到对此表示法的广泛支持。
在您的情况下,网络将是
127.0.0.1/32 (or just simply 127.0.0.1)
192.168.0.0/16
200.0.0.0/8
您可以使用类似内置IPAddr
类或IPAddress gem的内容来解析这些内容。
使用IPAddress gem,您可以执行以下操作(未经测试):
range = IPAddress("192.168.0.0/16")
ip = IPAddress("192.168.3.5")
range.include? ip # returns true
答案 1 :(得分:0)
以下应该匹配,
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b