65 lines
886 B
Go
65 lines
886 B
Go
package server
|
|
|
|
import (
|
|
`fmt`
|
|
`net/url`
|
|
)
|
|
|
|
func (p *Page) AltURL() (altUrl string) {
|
|
|
|
var u *url.URL
|
|
|
|
if !p.HasAltURL() {
|
|
return
|
|
}
|
|
|
|
if p.Info.IP.Is4() {
|
|
u = p.srv.v6Url
|
|
} else if p.Info.IP.Is6() {
|
|
u = p.srv.v4Url
|
|
} else {
|
|
// lol how did you get here
|
|
return
|
|
}
|
|
|
|
u.Query().Add(urlParamXCheck, p.ReqUUID.String())
|
|
|
|
altUrl = u.String()
|
|
|
|
return
|
|
}
|
|
|
|
func (p *Page) AltVer() (altVer string) {
|
|
|
|
if !p.HasAltURL() {
|
|
return
|
|
}
|
|
|
|
if p.Info.IP.Is4() {
|
|
altVer = "v6"
|
|
} else if p.Info.IP.Is6() {
|
|
altVer = "v4"
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func (p *Page) HasAltURL() (hasAlt bool) {
|
|
|
|
if p.Info == nil {
|
|
return
|
|
}
|
|
|
|
hasAlt = (p.Info.IP.Is4() && p.srv.v6Url != nil) ||
|
|
(p.Info.IP.Is6() && p.srv.v4Url != nil)
|
|
|
|
return
|
|
}
|
|
|
|
func (p *Page) RenderIP(indent uint) (s string) {
|
|
|
|
s = fmt.Sprintf("<a href=\"https://ipinfo.io/%s\">%s</a>", p.Info.IP.String(), p.Info.IP.String())
|
|
|
|
return
|
|
}
|