ipAddressがプライベートカテゴリにあるかどうかを確認しています。だから私はこの方法を以下に書いた。そして、私はexception-addrの長さが不正です
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)としてこれを取得しています、私はあなたがString
からbyte[]
にIPアドレスを変換する方法を誤解したと思う文字列
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 ");'? –
'getByAddress'に渡す前に' byteArray'を出力しようとしましたか? –