【发布时间】:2020-07-14 13:41:24
【问题描述】:
我正在检查 ipAddress 是否在私有类别中。所以我在下面写了这个方法。我认为这是一个例外-
java.net.UnknownHostException: addr is of illegal length
at java.net.InetAddress.getByAddress(InetAddress.java:948)
at java.net.InetAddress.getByAddress(InetAddress.java:1324)
ipAddress (172.18.36.81) 是字符串
if(isPrivateIPAddress(ipAddress)) {
return null;
}
private static boolean isPrivateIPAddress(String ipAddress) {
byte[] byteArray = null;
InetAddress ia = null;
try {
byteArray = ipAddress.getBytes("UTF-16LE");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
ia = InetAddress.getByAddress(byteArray);
} catch (UnknownHostException e) {
e.printStackTrace();
}
return ia.isSiteLocalAddress();
}
【问题讨论】:
-
byteArray的值是多少? -
ipAddress.getBytes("UTF-16LE");? -
在将
byteArray传递给getByAddress之前,您是否尝试过输出它? -
ip地址是多长?
-
如果我尝试打印,我会得到 [B@3a303a3.
标签: java