mirror of
https://github.com/cunnie/sslip.io.git
synced 2025-10-05 15:46:50 +08:00
Resolve hexadecimal notation for IPv6 addresses
e.g. `00000000000000000000000000000001.nip.io` → ::1 This is to bring parity with IPv4's hexadecimal notation, though IPv6's hexadecimal notation is so clunky that I doubt it'll ever be used. - The hexadecimal-notated IPv6 must be exactly 32 hexadecimal characters, no separators. - Any hexadecimal notation _must_ be bookended by dots or by the beginning or end of the string (www.0000000000000000000000000000001.sslip.io or 00000000000000000000000000000001.sslip.io). No dashes. - If a normal IP notation and a hex notation are in the same hostname, then the normal IP notation takes precedence. This preserves existing behavior for sslip.io users, e.g. (00000000000000000000000000000001.2600--.nip.io resolves to 2600::, not ::1)
This commit is contained in:
@@ -136,22 +136,6 @@ var _ = Describe("flags", func() {
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`\? nil, SOA 8-8-8-8\.sslip\.io\. briancunnie\.gmail\.com\.`))
|
||||
})
|
||||
It("doesn't resolve public IPv4 addresses (hexadecimal)", func() {
|
||||
digArgs := "@localhost 08080808.sslip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
digSession, err := Start(digCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`\? nil, SOA 08080808\.sslip\.io\. briancunnie\.gmail\.com\.`))
|
||||
})
|
||||
It("resolves private IPv4 addresses (hexadecimal)", func() {
|
||||
digArgs := "@localhost 7f000001.sslip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
digSession, err := Start(digCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`TypeA 7f000001.sslip.io. \? 127.0.0.1`))
|
||||
})
|
||||
It("doesn't resolve public IPv6 addresses", func() {
|
||||
digArgs := "@localhost aaaa 2600--.sslip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
@@ -160,6 +144,22 @@ var _ = Describe("flags", func() {
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`\? nil, SOA 2600--\.sslip\.io\. briancunnie\.gmail\.com\.`))
|
||||
})
|
||||
It("doesn't resolve public IPv4 addresses (hexadecimal)", func() {
|
||||
digArgs := "@localhost 08080808.nip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
digSession, err := Start(digCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`\? nil, SOA 08080808\.nip\.io\. briancunnie\.gmail\.com\.`))
|
||||
})
|
||||
It("doesn't resolve public IPv6 addresses (hexadecimal)", func() {
|
||||
digArgs := "@localhost aaaa 26010646010069f0042c6ab3cdd9e562.nip.io -p " + strconv.Itoa(port) // my laptop's IPv6 address
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
digSession, err := Start(digCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`\? nil, SOA 26010646010069f0042c6ab3cdd9e562\.nip\.io\. briancunnie\.gmail\.com\.`))
|
||||
})
|
||||
It("resolves private IPv4 addresses", func() {
|
||||
digArgs := "@localhost 192-168-0-1.sslip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
@@ -176,6 +176,22 @@ var _ = Describe("flags", func() {
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`fc00--\.sslip\.io\. \? fc00::`))
|
||||
})
|
||||
It("resolves private IPv4 addresses (hexadecimal)", func() {
|
||||
digArgs := "@localhost 7f000001.nip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
digSession, err := Start(digCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`TypeA 7f000001.nip.io. \? 127.0.0.1`))
|
||||
})
|
||||
It("resolves private IPv6 addresses (hexadecimal)", func() {
|
||||
digArgs := "@localhost aaaa 00000000000000000000000000000001.nip.io -p " + strconv.Itoa(port)
|
||||
digCmd := exec.Command("dig", strings.Split(digArgs, " ")...)
|
||||
digSession, err := Start(digCmd, GinkgoWriter, GinkgoWriter)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Eventually(digSession, 1).Should(Exit(0))
|
||||
Eventually(string(serverSession.Err.Contents())).Should(MatchRegexp(`TypeAAAA 00000000000000000000000000000001.nip.io. \? ::1`))
|
||||
})
|
||||
})
|
||||
When("-delegates is set", func() {
|
||||
BeforeEach(func() {
|
||||
|
Reference in New Issue
Block a user