可以打一个nat背后的端口出来。
单纯查询自己的公网ip,用stun意义不大。不如多个在线查询 轮流 get。
纯记录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| package main
import (
"fmt"
"github.com/ccding/go-stun/stun"
)
func main() {
client := stun.NewClient()
client.SetServerHost("stun.syncthing.net", 3478)
nat, host, err := client.Discover()
fmt.Println("nat", nat)
if err != nil {
fmt.Println("无法获取公网IP:", err)
return
}
if host == nil {
fmt.Println("可能是无法连接到主机")
return
}
fmt.Println("host", host.IP())
fmt.Println("host String", host.String())
}
|
国内三个可用的:
stun.qq.com
stun.miwifi.com
stun.syncthing.net