dongliang2005 2015-04-16 22:30
浏览 943
已采纳

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

I'm trying to get a client IP when a connection is made to a server. Trying to use RemoteAddr() returns an addr-type, and while I can print to the console using fmt.Println, I'm trying to assign the value to a string variable.

Is this possible? Or is there a better way to pull a connected client's IP address?

Sample of the function I'm working on (the strRemoteAddr assignment is the problem part, but I left it in as a placeholder...):

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)
    }
}
  • 写回答

2条回答 默认 最新

  • douxian4888 2015-04-16 23:07
    关注

    Seems just

    strRemoteAddr = conn.RemoteAddr().String()
    

    can do, net.Addr type has method String() for string representation.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog