从proxy获取client ip地址

This commit is contained in:
hebo
2019-12-05 20:51:43 +08:00
parent 8e4e9a8d62
commit f70a646902
14 changed files with 1024 additions and 15 deletions

View File

@@ -15,6 +15,7 @@ type MysqlSession struct {
connectionID *string
visitUser *string
visitDB *string
clientAlias *string
clientHost *string
clientPort int
serverIP *string
@@ -46,10 +47,11 @@ type prepareInfo struct {
}
func NewMysqlSession(
sessionKey *string, clientIP *string, clientPort int, serverIP *string, serverPort int,
sessionKey, clientAlias, clientIP *string, clientPort int, serverIP *string, serverPort int,
receiver chan model.QueryPiece) (ms *MysqlSession) {
ms = &MysqlSession{
connectionID: sessionKey,
clientAlias: clientAlias,
clientHost: clientIP,
clientPort: clientPort,
serverIP: serverIP,
@@ -333,6 +335,10 @@ func filterQueryPieceBySQL(mqp *model.PooledMysqlQueryPiece, querySQL []byte) (*
}
func (ms *MysqlSession) composeQueryPiece() (mqp *model.PooledMysqlQueryPiece) {
clientIP := ms.clientAlias
if clientIP == nil || len(*clientIP) < 1 {
clientIP = ms.clientHost
}
return model.NewPooledMysqlQueryPiece(
ms.connectionID, ms.clientHost, ms.visitUser, ms.visitDB, ms.clientHost, ms.serverIP,
ms.clientPort, ms.serverPort, communicator.GetMysqlCapturePacketRate(), ms.stmtBeginTime)