如何在 Golang 中将网络客户端的 IP 转换为字符串?

我正在尝试在与服务器建立连接时获取客户端 IP。尝试使用RemoteAddr()返回一个 addr 类型,虽然我可以使用 打印到控制台fmt.Println,但我正在尝试将该值分配给一个字符串变量。


这可能吗?或者有没有更好的方法来提取连接的客户端的 IP 地址?


我正在处理的函数示例(strRemoteAddr作业是问题部分,但我将其作为占位符保留...):


func GrabInput(conn net.Conn, strFromListenerNumber string) {

    var strMessage string

    var strRemoteAddr string


    bufIncoming := make([]byte, 1024)


    strRemoteAddr = conn.RemoteAddr()


    for {

        bytesRead, err := conn.Read(bufIncoming)

        if err != nil {

            LogEvent(strFromListenerNumber, err.Error())

            return

        }


        strMessage = string(bufIncoming[0 : bytesRead-1])

        LogEvent(strFromListenerNumber+": "+strRemoteAddr, strMessage)

    }

}


繁花不似锦
浏览 673回答 2
2回答

慕侠2389804

似乎只是strRemoteAddr = conn.RemoteAddr().String()可以做到,net.Addr 类型具有用于字符串表示的方法 String()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go