l14.go 713 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "encoding/json"
  6. "net/http"
  7. "net/url"
  8. "github.com/joho/godotenv"
  9. "os"
  10. )
  11. type IPR struct{
  12. IP string `json:"origin"`
  13. }
  14. func main() {
  15. err := godotenv.Load()
  16. if err != nil {
  17. log.Println(err)
  18. }
  19. proxy := os.Getenv("proxy")
  20. proxyURL, err := url.Parse(proxy)
  21. if err != nil {
  22. log.Fatalln(err)
  23. }
  24. tran := &http.Transport{
  25. Proxy: http.ProxyURL(proxyURL),
  26. }
  27. myclient := &http.Client {
  28. Transport: tran,
  29. }
  30. url, err := myclient.Get("https://httpbin.org/ip")
  31. if err != nil {
  32. log.Fatalf("%v\n", err)
  33. }
  34. defer url.Body.Close()
  35. var ipresp IPR
  36. err = json.NewDecoder(url.Body).Decode(&ipresp)
  37. if err != nil {
  38. log.Fatalf("%v\n", err)
  39. }
  40. fmt.Println(ipresp.IP)
  41. }