diff --git a/go/l14.go b/go/l14.go new file mode 100644 index 0000000..6b48445 --- /dev/null +++ b/go/l14.go @@ -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) +} diff --git a/go/l5.go b/go/l5.go index f1c2df4..2720f28 100644 --- a/go/l5.go +++ b/go/l5.go @@ -10,7 +10,7 @@ import ( func main() { err := godotenv.Load() if err != nil { - log.Fatalf("%v\n", err) + log.Fatalln(err) return } api := os.Getenv("api_key") diff --git a/go/output/l14 b/go/output/l14 new file mode 100755 index 0000000..e2d9e00 Binary files /dev/null and b/go/output/l14 differ