當(dāng)新的 TCP 客戶端連接到我的 Go 服務(wù)器時(shí),我正在嘗試打印日志。 l, err := net.Listen("tcp", bindPort) c, err := l.Accept() clientIP := c.RemoteAddr().String() fmt.Println("==> accepted new client, IP:", clientIP)我在本地主機(jī)上測(cè)試的輸出==> accepted new client, IP: [::1]:56780我沒(méi)有找到任何方法來(lái)獲取或?qū)⑵滢D(zhuǎn)換為 IPv4 (192.168.1.31) 形式。
1 回答

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果你想使用 IPv4,你可以強(qiáng)制它只聽(tīng) IPv4
bindPort := "0.0.0.0:1234"
// or to be more specific, bindPort := "192.168.1.31:1234"
l, err := net.Listen("tcp", bindPort)
我假設(shè)你在 Linux 上運(yùn)行 golang,如果你使用默認(rèn)內(nèi)核選項(xiàng),IPv6 更像是一個(gè)默認(rèn)監(jiān)聽(tīng)器。
此外,如果您不想以localhost身份連接,則可以指定綁定地址以連接到服務(wù)器。IE:
client, _ := net.Dial("tcp", "192.168.1.31:1234")
- 1 回答
- 0 關(guān)注
- 124 瀏覽
添加回答
舉報(bào)
0/150
提交
取消