add hostname lookup

This commit is contained in:
Thomas Wouters
2015-09-21 18:03:52 +02:00
parent ccd3c7a7bb
commit 3d14ea63ba
2 changed files with 19 additions and 7 deletions

View File

@ -21,6 +21,7 @@ import (
const (
IP_HEADER = "x-ifconfig-ip"
COUNTRY_HEADER = "x-ifconfig-country"
HOSTNAME_HEADER = "x-ifconfig-hostname"
TEXT_PLAIN = "text/plain; charset=utf-8"
APPLICATION_JSON = "application/json"
)
@ -28,9 +29,10 @@ const (
var cliUserAgentExp = regexp.MustCompile("^(?i)(curl|wget|fetch\\slibfetch)\\/.*$")
type API struct {
db *geoip2.Reader
CORS bool
Template string
db *geoip2.Reader
CORS bool
ReverseLookup bool
Template string
}
func New() *API { return &API{} }
@ -197,6 +199,14 @@ func (a *API) requestFilter(next http.Handler) http.Handler {
r.Header.Set(COUNTRY_HEADER, country)
}
}
if a.ReverseLookup {
hostname, err := net.LookupAddr(ip.String())
if err != nil {
r.Header.Set(HOSTNAME_HEADER, err.Error())
} else {
r.Header.Set(HOSTNAME_HEADER, strings.Join(hostname, ", "))
}
}
if a.CORS {
w.Header().Set("Access-Control-Allow-Methods", "GET")
w.Header().Set("Access-Control-Allow-Origin", "*")