On 7/7/2011 7:48 AM, /dev/rob0 wrote:
> On Thu, Jul 07, 2011 at 06:44:49AM -0500, Stan Hoeppner wrote:
>> On 7/7/2011 5:58 AM, /dev/rob0 wrote:
>>> The anchors at both ends mean you are safe. You start with ^ and 
>>> end with $, so nothing else can sneak in between those.
>>>
>>> A simpler expression to accomplish the same thing:
>>>     /^[0-9\.]$/             DUNNO
>>> In English, that says: match a string which contains nothing but 
>>> numerals and dots. It matches nonsense strings such as "...", but 
>>> would be safe as per your intent to only match bare IP addresses.
>>
>> With that being right anchored, the last character it attempts to 
>> match is a dot, no?  See a problem there?
> 
> The last character before $ is in fact "]" which closes the bracket 
> expression defined by the opening "[". Read up on character classes 
> and bracket expressions.

what rob0 meant was
/^[0-9.]+$/             DUNNO

For those following at home, the + means "one or more
occurrences of the proceeding", and "special character" rules
are different inside character class brackets, so don't escape
the period with a backslash.  As originally presented, the
expression will match a single character string consisting of
any number, a backslash, or a period.
Rob knows all this as well as anyone, but the syntax is arcane
and easy to mess up in quick postings.

This (corrected) expression would also match an all-numeric
string, or a phone number in the fairly common 123.456.1212
format.  I don't know if such strings ever show up in reverse
hostnames (certainly never with check_client_access, but maybe
with check_reverse_client_hostname_access).  Probably better
to stick with the well-tested
/^([0-9]{1,3}\.){3}[0-9]{1,3}$/         DUNNO


  -- Noel Jones

Reply via email to