Ver código fonte

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

hhu67 1 mês atrás
pai
commit
4db600f957
3 arquivos alterados com 45 adições e 1 exclusões
  1. 44 0
      go/l14.go
  2. 1 1
      go/l5.go
  3. BIN
      go/output/l14

+ 44 - 0
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)
+}

+ 1 - 1
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")

BIN
go/output/l14