From 1ffd329f4b9c938589080501ee2d09123d36d67b Mon Sep 17 00:00:00 2001 From: Steve Rao Date: Wed, 1 Mar 2023 10:57:17 +0800 Subject: [PATCH] fix: remove useless suffix of IPv6 address (#3188) --- .../java/com/alibaba/cloud/nacos/utils/InetIPv6Util.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/utils/InetIPv6Util.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/utils/InetIPv6Util.java index 89c85a20a..0e37f0681 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/utils/InetIPv6Util.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/utils/InetIPv6Util.java @@ -127,13 +127,16 @@ public class InetIPv6Util implements Closeable { if (!StringUtils.isEmpty(ip)) { int index = ip.indexOf('%'); ip = index > 0 ? ip.substring(0, index) : ip; - return iPv6Format(ip); + return normalizeIPv6(ip); } return ip; } - public String iPv6Format(String ip) { - return "[" + ip + "]"; + public String normalizeIPv6(String ip) { + // Remove the suffix of network card in IPv6 address, such as + // 2408:400a:8c:5400:6578:5c42:77b1:bc5d%eth0 + int idx = ip.indexOf("%"); + return idx != -1 ? "[" + ip.substring(0, idx) + "]" : "[" + ip + "]"; } boolean isPreferredAddress(InetAddress address) {