Programmers with network engineering skills

Owen DeLong owen at delong.com
Mon Mar 12 21:32:23 UTC 2012


On Mar 12, 2012, at 2:12 PM, Keegan Holley wrote:

> 2012/3/12 Tei <oscar.vives at gmail.com>
> 
>> On 12 March 2012 09:59, Carlos Martinez-Cagnazzo <carlosm3011 at gmail.com>
>> wrote:
>>> Hey!
>>> 
>>> On 3/8/12 8:24 PM, Lamar Owen wrote:
>>>> On Monday, March 05, 2012 09:36:41 PM Jimmy Hess wrote:
>>>> ...
>>>>>   (16)  The default gateway's IP address is always 192.168.0.1
>>>>>   (17) The user portion of E-mail addresses never contain special
>>>>> characters like  "-" "+"  "$"   "~"  "."  ",", "[",  "]"
>>> I've just had my ' xx AT cagnazzo.name' email address rejected by a web
>>> form saying that 'it is not a valid email address'. So I guess point
>>> (17) can be extended to say that 'no email address shall end in anything
>>> different that .com, .net or the local ccTLD'
>>> 
>>> :=)
>>> 
>>> Carlos
>> 
>> 
>> Yea, I don't even know how programmers can get that wrong.  The regex
>> is not even hard or anything.
>> 
>> 
>> 
>> (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?: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]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
>> 
>> 
> I bet it's even harder without the use of a search engine.

Whenever I've built code to check someone's email address on a form, I always just looked for the following:

1.	matches ^[^@]+@[A-Za-z0-0\-\.]+[A-Za-z]$
2.	The component to the right of the @ sign returns at least one A, AAAA, or MX record.

If it passed those two checks, I figured that was about as good as I could do without resorting to one of the following:
	1.	An incomprehensible and unmaintainable regex as the one above
	2.	Actually attempting delivery to said address

Owen





More information about the NANOG mailing list