-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Open
Labels
NeedsDecisionFeedback is required from experts, contributors, and/or the community before a change can be made.Feedback is required from experts, contributors, and/or the community before a change can be made.
Milestone
Description
isDomainName is limited to hostname-compatible "preferred name" LDH labels, with an exception made for underscores per #1167. But RFC 2181 is clear about any octet being valid in a DNS label:
Those [length] restrictions aside, any binary string whatever can be used as the label of any resource record.
What version of Go are you using (go version)?
go1.7.1
What operating system and processor architecture are you using (go env)?
linux/amd64
GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build693750050=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
What did you do?
query uncommon domain names
package main
import (
"fmt"
"net"
)
func main() {
domains := []string{
`*.golang.org`,
`\.\.\..golang.org`,
`\065.golang.org`,
`\000.golang.org`,
}
for _, domain := range domains {
fmt.Printf("\n%s\n", domain)
fmt.Println(net.LookupHost(domain))
}
}What did you expect to see?
successful DNS queries
*.golang.org
[216.58.219.209 2607:f8b0:4006:80e::2011] <nil>
\.\.\..golang.org
[216.58.219.209 2607:f8b0:4006:80e::2011] <nil>
\065.golang.org
[216.58.219.209 2607:f8b0:4006:80e::2011] <nil>
\000.golang.org
[216.58.219.209 2607:f8b0:4006:80e::2011] <nil>
What did you see instead?
valid names were rejected
*.golang.org
[] lookup *.golang.org: invalid domain name
\.\.\..golang.org
[] lookup \.\.\..golang.org: no such host
\065.golang.org
[216.58.219.209 2607:f8b0:4006:80e::2011] <nil>
\000.golang.org
[] lookup \000.golang.org: no such host
Metadata
Metadata
Assignees
Labels
NeedsDecisionFeedback is required from experts, contributors, and/or the community before a change can be made.Feedback is required from experts, contributors, and/or the community before a change can be made.