未验证 提交 c9e467f6 编写于 作者: E Eric Gao 提交者: GitHub

[Bug] [Common] update IPv4 Pattern (#11762) (#12739)

* [Bug] [Common] IPv4 Pattern is wrong. #11758
Co-authored-by: NYann Ann <xiaoqiang.yann@gmail.com>
上级 01cab774
......@@ -32,8 +32,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.regex.Pattern;
import org.apache.http.conn.util.InetAddressUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
*/
public class NetUtils {
private static final Pattern IP_PATTERN = Pattern.compile("\\d{1,3}(\\.\\d{1,3}){3,5}$");
private static final String NETWORK_PRIORITY_DEFAULT = "default";
private static final String NETWORK_PRIORITY_INNER = "inner";
private static final String NETWORK_PRIORITY_OUTER = "outer";
......@@ -183,7 +182,7 @@ public class NetUtils {
}
String name = address.getHostAddress();
return (name != null
&& IP_PATTERN.matcher(name).matches()
&& InetAddressUtils.isIPv4Address(name)
&& !address.isAnyLocalAddress()
&& !address.isLoopbackAddress());
}
......@@ -237,7 +236,8 @@ public class NetUtils {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
if (ignoreNetworkInterface(networkInterface)) { // ignore
// ignore
if (ignoreNetworkInterface(networkInterface)) {
continue;
}
validNetworkInterfaces.add(networkInterface);
......
......@@ -99,6 +99,18 @@ public class NetUtilsTest {
address = mock(InetAddress.class);
when(address.getHostAddress()).thenReturn("1.2.3.4");
assertTrue(NetUtils.isValidV4Address(address));
address = mock(InetAddress.class);
when(address.getHostAddress()).thenReturn("1.2.3.4:80");
assertFalse(NetUtils.isValidV4Address(address));
address = mock(InetAddress.class);
when(address.getHostAddress()).thenReturn("256.0.0.1");
assertFalse(NetUtils.isValidV4Address(address));
address = mock(InetAddress.class);
when(address.getHostAddress()).thenReturn("127.0.0.0.1");
assertFalse(NetUtils.isValidV4Address(address));
address = mock(InetAddress.class);
when(address.getHostAddress()).thenReturn("-1.2.3.4");
assertFalse(NetUtils.isValidV4Address(address));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册