diff --git a/capture/network.go b/capture/network.go index e8ab03f..bc64708 100644 --- a/capture/network.go +++ b/capture/network.go @@ -158,10 +158,14 @@ func (nc *networkCard) parseTCPPackage(packet gopacket.Packet, authHeader *pp.He clientIPContent := authHeader.SourceAddress.String() clientIP = &clientIPContent clientPort = int(authHeader.SourcePort) + + } else { + clientIP = &srcIP + clientPort = srcPort } // deal mysql server response - err = readToServerPackage(clientIP, clientPort, &srcIP, srcPort, tcpPkt, nc.receiver) + err = readToServerPackage(clientIP, clientPort, &srcIP, srcPort, &dstIP, tcpPkt, nc.receiver) if err != nil { return } @@ -211,7 +215,7 @@ func readFromServerPackage( } func readToServerPackage( - clientIP *string, clientPort int, srcIP *string, srcPort int, tcpPkt *layers.TCP, + clientIP *string, clientPort int, srcIP *string, srcPort int, destIP *string, tcpPkt *layers.TCP, receiver chan model.QueryPiece) (err error) { defer func() { if err != nil { @@ -239,7 +243,7 @@ func readToServerPackage( sessionKey := spliceSessionKey(srcIP, srcPort) session := sessionPool[*sessionKey] if session == nil { - session = sd.NewSession(sessionKey, clientIP, clientPort, srcIP, srcPort, localIPAddr, snifferPort, receiver) + session = sd.NewSession(sessionKey, clientIP, clientPort, srcIP, srcPort, destIP, snifferPort, receiver) sessionPool[*sessionKey] = session }