从 net tcp 连接获取 IPv4 地址

当新的 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) 形式。


芜湖不芜
浏览 107回答 1
1回答

蝴蝶刀刀

如果你想使用 IPv4,你可以强制它只听 IPv4bindPort := "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")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go