2022-07-13 04:05:53 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"net/http"
|
|
|
|
)
|
|
|
|
|
|
|
|
func handler(w http.ResponseWriter, r *http.Request) {
|
2022-07-13 04:45:09 +00:00
|
|
|
ip := GetRealIP(r)
|
2022-07-13 04:05:53 +00:00
|
|
|
fmt.Fprintf(w, ip)
|
|
|
|
}
|
|
|
|
|
2022-07-13 04:45:09 +00:00
|
|
|
func GetRealIP(r *http.Request) string {
|
|
|
|
IP := r.Header.Get("X-Real-IP")
|
|
|
|
if IP == "" {
|
|
|
|
IP = r.Header.Get("X-Forwarder-For")
|
2022-07-13 04:05:53 +00:00
|
|
|
}
|
2022-07-13 04:45:09 +00:00
|
|
|
if IP == "" {
|
|
|
|
IP = r.RemoteAddr
|
|
|
|
}
|
|
|
|
if IP == "" {
|
|
|
|
IP = "No IPV4 address"
|
|
|
|
}
|
|
|
|
return IP
|
2022-07-13 04:05:53 +00:00
|
|
|
}
|
|
|
|
func main() {
|
|
|
|
http.HandleFunc("/", handler)
|
|
|
|
log.Fatal(http.ListenAndServe(":8081", nil))
|
|
|
|
}
|