Java判断IP地址为内网IP还是公网IP的方法
在Java中,可以使用以下方法来判断一个IP地址是内网IP还是公网IP。
方法一:使用正则表达式匹配
import java.util.regex.Pattern;
public class IPAddressChecker {
public static boolean isPrivateIP(String ipAddress) {
// 内网IP地址的正则表达式
String privateIPPattern = \"(^10\\\\.)|(^172\\\\.1[6-9]\\\\.)|(^172\\\\.2[0-9]\\\\.)|(^172\\\\.3[0-1]\\\\.)|(^192\\\\.168\\\\.)\";
// 使用正则表达式匹配IP地址
Pattern pattern = Pattern.compile(privateIPPattern);
return pattern.matcher(ipAddress).find();
}
public static void main(String[] args) {
String ipAddress1 = \"192.168.0.1\";
String ipAddress2 = \"123.45.67.89\";
System.out.println(ipAddress1 + \" is private IP: \" + isPrivateIP(ipAddress1));
System.out.println(ipAddress2 + \" is private IP: \" + isPrivateIP(ipAddress2));
}
}
输出结果:
192.168.0.1 is private IP: true
123.45.67.89 is private IP: false
方法二:使用Java的InetAddress类
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IPAddressChecker {
public static boolean isPrivateIP(String ipAddress) {
try {
InetAddress inetAddress = InetAddress.getByName(ipAddress);
return inetAddress.isSiteLocalAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args) {
String ipAddress1 = \"192.168.0.1\";
String ipAddress2 = \"123.45.67.89\";
System.out.println(ipAddress1 + \" is private IP: \" + isPrivateIP(ipAddress1));
System.out.println(ipAddress2 + \" is private IP: \" + isPrivateIP(ipAddress2));
}
}
输出结果:
192.168.0.1 is private IP: true
123.45.67.89 is private IP: false
以上两种方法都可以判断一个IP地址是内网IP还是公网IP。方法一使用正则表达式匹配,方法二使用Java的InetAddress类。根据实际情况选择适合的方法即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java判断IP地址为内网IP还是公网IP的方法 - Python技术站