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:
parent
d7baf0b099
commit
4db600f957
3 changed files with 45 additions and 1 deletions
44
go/l14.go
Normal file
44
go/l14.go
Normal 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)
|
||||
}
|
||||
2
go/l5.go
2
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
Executable file
BIN
go/output/l14
Executable file
Binary file not shown.
Loading…
Reference in a new issue