in reply to Wildcard usage for REMOTE_ADDR comparison
but the correct answer for production work is to use a module like NetAddr::IP to match tie IP/subnet (call the "contains" method, after first creating a subnet object).
One reason why is for the case where you are presented with an address text like "180.076.006.001", or an invalid address like "18.104.22.1680"
"By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest." -Confucius