如何在Perl中验证主机名?

时间:2010-06-10 07:45:38

标签: regex perl hostname

我需要提出一个正则表达式来验证主机名 RFC-1123RFC-952

现在我正在使用它:

^(?=.{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])?)*\.?$/

但这并不能解决问题,因为它不会将a.作为无效的主机名捕获。

如何增强reg表达式以符合这些RFC?

由于

2 个答案:

答案 0 :(得分:8)

Regexp::Common包含与regex匹配的RFC-1035,这还不错吗?

答案 1 :(得分:5)

我在Data::Validate::Domain上找到CPAN

我没有尝试过这个,但看起来很有希望(有积极的评论等)。