当新的 TCP 客户端连接到我的 Go 服务器时,我正在尝试打印日志。 l, err := net.Listen("tcp", bindPort) c, err := l.Accept() clientIP := c.RemoteAddr().String() fmt.Println("==> accepted new client, IP:", clientIP)我在本地主机上测试的输出==> accepted new client, IP: [::1]:56780我没有找到任何方法来获取或将其转换为 IPv4 (192.168.1.31) 形式。
1 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
如果你想使用 IPv4,你可以强制它只听 IPv4
bindPort := "0.0.0.0:1234"
// or to be more specific, bindPort := "192.168.1.31:1234"
l, err := net.Listen("tcp", bindPort)
我假设你在 Linux 上运行 golang,如果你使用默认内核选项,IPv6 更像是一个默认监听器。
此外,如果您不想以localhost身份连接,则可以指定绑定地址以连接到服务器。IE:
client, _ := net.Dial("tcp", "192.168.1.31:1234")
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消