How to validate hostname in Perl?
Question
I need to come up with a regular expression to validate hostname against RFC-1123 and RFC-952.
Right now I'm using this:
^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$/
but this does not do the trick since it does not catch a.
as invalid hostname.
How do I enhance the reg expression to comply with those RFCs?
Thanks
Solution
Regexp::Common contains a regex that matches against RFC-1035, is this good enough?
OTHER TIPS
I found Data::Validate::Domain on CPAN.
I have not tried this, but it looks promising (has positive reviews etc.).
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow