如何在Perl中验证主机名?

emb*_*ded 1 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])?)*\.?$/
Run Code Online (Sandbox Code Playgroud)

但这并没有成功,因为它没有捕获a.无效的主机名.

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

谢谢

Cha*_*ens 9

Regexp :: Common包含一个与RFC-1035匹配的正则表达式,这还不错吗?


Sna*_*ken 6

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

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