从proxy获取client ip地址

This commit is contained in:
hebo
2019-12-06 13:46:59 +08:00
parent f70a646902
commit 67e917f4f3
4 changed files with 35 additions and 27 deletions

View File

@@ -15,9 +15,10 @@ type MysqlSession struct {
connectionID *string
visitUser *string
visitDB *string
clientAlias *string
clientHost *string
clientIP *string
clientPort int
srcIP *string
srcPort int
serverIP *string
serverPort int
stmtBeginTime int64
@@ -47,13 +48,14 @@ type prepareInfo struct {
}
func NewMysqlSession(
sessionKey, clientAlias, clientIP *string, clientPort int, serverIP *string, serverPort int,
sessionKey, clientIP *string, clientPort int, srcIP *string, srcPort int, serverIP *string, serverPort int,
receiver chan model.QueryPiece) (ms *MysqlSession) {
ms = &MysqlSession{
connectionID: sessionKey,
clientAlias: clientAlias,
clientHost: clientIP,
clientIP: clientIP,
clientPort: clientPort,
srcIP: srcIP,
srcPort: srcPort,
serverIP: serverIP,
serverPort: serverPort,
stmtBeginTime: time.Now().UnixNano() / millSecondUnit,
@@ -335,11 +337,13 @@ func filterQueryPieceBySQL(mqp *model.PooledMysqlQueryPiece, querySQL []byte) (*
}
func (ms *MysqlSession) composeQueryPiece() (mqp *model.PooledMysqlQueryPiece) {
clientIP := ms.clientAlias
clientIP := ms.clientIP
clientPort := ms.clientPort
if clientIP == nil || len(*clientIP) < 1 {
clientIP = ms.clientHost
clientIP = ms.srcIP
clientPort = ms.serverPort
}
return model.NewPooledMysqlQueryPiece(
ms.connectionID, ms.clientHost, ms.visitUser, ms.visitDB, ms.clientHost, ms.serverIP,
ms.clientPort, ms.serverPort, communicator.GetMysqlCapturePacketRate(), ms.stmtBeginTime)
ms.connectionID, clientIP, ms.visitUser, ms.visitDB, ms.serverIP,
clientPort, ms.serverPort, communicator.GetMysqlCapturePacketRate(), ms.stmtBeginTime)
}