我认为您误解了如何将IP地址从转换
String为
byte[]。这样做的正确方法是解析
String为
ints 的序列,然后将每个序列转换为a
byte。但幸运的是,
InetAddress已经有一种方法可以为您处理该问题,因此您可以编写:
private static boolean isPrivateIPAddress(String ipAddress){ return InetAddress.getByName(ipAddress).isSiteLocalAddress();}
(以及所需的任何有效性检查和错误处理)。
请注意,以上内容还将通过使用DNS查找来处理主机名。如果您不想这样做,则需要使用以下方法预先检查IP地址:
if(! Pattern.matches("(\d{1,3}\.){3}\d{1,3}", ipAddress) throw new IllegalArgumentException();
如果您只支持IPv4可以。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)