add new file go/l14.go to find out your IP through a proxy and file go/README.md update later

This commit is contained in:
hhu67 2026-06-08 02:02:00 +03:00
parent d7baf0b099
commit 4db600f957
3 changed files with 45 additions and 1 deletions

44
go/l14.go Normal file
View file

@ -0,0 +1,44 @@
package main
import (
"fmt"
"log"
"encoding/json"
"net/http"
"net/url"
"github.com/joho/godotenv"
"os"
)
type IPR struct{
IP string `json:"origin"`
}
func main() {
err := godotenv.Load()
if err != nil {
log.Println(err)
}
proxy := os.Getenv("proxy")
proxyURL, err := url.Parse(proxy)
if err != nil {
log.Fatalln(err)
}
tran := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
}
myclient := &http.Client {
Transport: tran,
}
url, err := myclient.Get("https://httpbin.org/ip")
if err != nil {
log.Fatalf("%v\n", err)
}
defer url.Body.Close()
var ipresp IPR
err = json.NewDecoder(url.Body).Decode(&ipresp)
if err != nil {
log.Fatalf("%v\n", err)
}
fmt.Println(ipresp.IP)
}

View file

@ -10,7 +10,7 @@ import (
func main() { func main() {
err := godotenv.Load() err := godotenv.Load()
if err != nil { if err != nil {
log.Fatalf("%v\n", err) log.Fatalln(err)
return return
} }
api := os.Getenv("api_key") api := os.Getenv("api_key")

BIN
go/output/l14 Executable file

Binary file not shown.