mirror of
https://github.com/mpolden/echoip.git
synced 2025-06-25 12:17:52 +02:00
add hostname lookup
This commit is contained in:
16
api/api.go
16
api/api.go
@ -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", "*")
|
||||
|
Reference in New Issue
Block a user