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)
}
}
Convert it to *net.TCPAddr
if addr, ok := conn.RemoteAddr().(*net.TCPAddr); ok {
fmt.Println(addr.IP.String())
}
Seems just
strRemoteAddr = conn.RemoteAddr().String()
can do, net.Addr type has method String() for string representation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With