2012-02-14 83 views

回答

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解析這些。

有了ip地址的寶石,然後你可以做這樣的事情(未經測試):

range = IPAddress("192.168.0.0/16") 
ip = IPAddress("192.168.3.5") 
range.include? ip # returns true 
+0

這適用於[IPADDR(HTTP相同:// WWW .ruby-doc.org/stdlib-1.9.3/libdoc/ipaddr/rdoc/IPAddr.html#method-i-include-3F)來自stdlib。 – steenslag 2012-02-14 16:29:45

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