3

How can I check whether URL.Hostname is a valid domain name? I am searching for the exact same behaviour as URI.CheckHostName in the .NET framework.

  • 2
    Currently, there is no solution using standard library only. You need to use third party library/regex. However, if you need to support *internationalized domain name*, the task may not trivial. See [https://stackoverflow.com/questions/11809631/fully-qualified-domain-name-validation](https://stackoverflow.com/questions/11809631/fully-qualified-domain-name-validation), [https://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname](https://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname) – putu Jan 13 '18 at 11:14

2 Answers2

4

See my code here.

The function checks if the provided domain name is valid relative to the rules. It doesn't check if the domain name exist.

chmike
  • 19,279
  • 21
  • 77
  • 99
1

The function IsDNSName from the govalidator package should do what you want. For details on installing it, see the README.

phlummox
  • 221
  • 4
  • 10
  • It allows underscore in domain names which is wrong. See RFC1034 section 3.5. A later change to this RFC is to allow digits as first label character. The TLD label can't start with a digit to avoid confusion between domain names and IPv4 addresses. – chmike Jun 26 '18 at 08:16