package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {

    responseClient, errClient := http.Get("http://ip.dhcp.cn/?ip") // 获取外网 IP
    if errClient != nil {
        fmt.Printf("获取外网 IP 失败,请检查网络\n")
        panic(errClient)
    }
    // 程序在使用完 response 后必须关闭 response 的主体。
    defer responseClient.Body.Close()

    body, _ := ioutil.ReadAll(responseClient.Body)
    clientIP := fmt.Sprintf("%s", string(body))
    print(clientIP)

}

nginx配置


获取外网IP的ngnix配置:
在 nginx 中添加:
        location /get_ip {            
default_type text/plain;            
return 200 "$remote_addr\n";        
}