diff --git a/tcp.go b/tcp.go
index 878cfde8a39c90d5e13505246f811e8aab1c20db..2a297ca5612e6c89db4f94d654d6961efe663320 100644
--- a/tcp.go
+++ b/tcp.go
@@ -52,10 +52,10 @@ func tcpHandleConnection(conn net.Conn, logger *slog.Logger) {
 
 	targetAddr := Opts.TargetAddr6
 	if saddr == nil {
-		if netip.MustParseAddr(conn.RemoteAddr().String()).Is4() {
+		if netip.MustParseAddrPort(conn.RemoteAddr().String()).Addr().Is4() {
 			targetAddr = Opts.TargetAddr4
 		}
-	} else if netip.MustParseAddr(saddr.String()).Is4() {
+	} else if netip.MustParseAddrPort(saddr.String()).Addr().Is4() {
 		targetAddr = Opts.TargetAddr4
 	}