如何在Go中检查主机名是否为域名?

5

2
目前,仅使用标准库没有解决方案。您需要使用第三方库/正则表达式。但是,如果您需要支持国际化域名,则任务可能不是简单的。请参见https://dev59.com/uGgt5IYBdhLWcg3wywdJ,https://dev59.com/w3A75IYBdhLWcg3wAEDx。 - putu
4个回答

4

3

请查看我的代码这里

该函数检查提供的域名是否符合规则,但它不检查该域名是否存在。


0

这是你要的。https://pkg.go.dev/github.com/dchest/validator

func ValidateDomainByResolvingIt(domain string) error ValidateDomainByResolvingIt 通过查询给定域名的 DNS,如果名称解析,则返回nil,否则返回一个错误。


0

govalidator 包中的 IsDNSName 函数应该能够满足您的需求。有关安装细节,请参阅 README


1
它允许在域名中使用下划线,这是错误的。请参阅RFC1034第3.5节。对此RFC的后续更改是允许数字作为第一个标签字符。TLD标签不能以数字开头,以避免域名和IPv4地址之间的混淆。 - chmike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接