diff --git a/network/tcp_conn.go b/network/tcp_conn.go index 26c2318..668bf92 100644 --- a/network/tcp_conn.go +++ b/network/tcp_conn.go @@ -71,6 +71,10 @@ func (tcpConn *TCPConn) Close() { tcpConn.closeFlag = true } +func (tcpConn *TCPConn) GetRemoteIp() string { + return tcpConn.conn.RemoteAddr().String() +} + func (tcpConn *TCPConn) doWrite(b []byte) { if len(tcpConn.writeChan) == cap(tcpConn.writeChan) { log.Debug("close conn: channel full") diff --git a/sysservice/tcpservice.go b/sysservice/tcpservice.go index 427b9e3..ba6bd70 100644 --- a/sysservice/tcpservice.go +++ b/sysservice/tcpservice.go @@ -187,3 +187,13 @@ func (slf *TcpService) Close(clientid uint64) { return } +func (slf *TcpService) GetClientIp(clientid uint64) string{ + slf.mapClientLocker.Lock() + defer slf.mapClientLocker.Unlock() + pClient,ok := slf.mapClient[clientid] + if ok == false{ + return "" + } + + return pClient.tcpConn.GetRemoteIp() +}