欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

內網和外網的判斷java

阮建安1年前5瀏覽0評論

在Java中,判斷是否為內網地址或外網地址可以通過以下方式實現:

/**
* 判斷是否為內網地址
* @param ip 要判斷的IP地址字符串
* @return true表示是內網地址,false表示不是內網地址
*/
public static boolean isInternalIp(String ip) {
if ("127.0.0.1".equals(ip) || "localhost".equals(ip)) {
return true;
}
Long n = ipToLong(ip);
if (n != null) {
// A類地址范圍:10.0.0.0--10.255.255.255
Long aBegin = ipToLong("10.0.0.0");
Long aEnd = ipToLong("10.255.255.255");
// B類地址范圍:172.16.0.0--172.31.255.255
Long bBegin = ipToLong("172.16.0.0");
Long bEnd = ipToLong("172.31.255.255");
// C類地址范圍:192.168.0.0--192.168.255.255
Long cBegin = ipToLong("192.168.0.0");
Long cEnd = ipToLong("192.168.255.255");
return isInRange(n, aBegin, aEnd) || isInRange(n, bBegin, bEnd) || isInRange(n, cBegin, cEnd);
}
return false;
}
/**
* 判斷是否為外網地址
* @param ip 要判斷的IP地址字符串
* @return true表示是外網地址,false表示不是外網地址
*/
public static boolean isExternalIp(String ip) {
return !isInternalIp(ip);
}
/**
* 將IP地址字符串轉換成Long類型的整數
* @param ip IP地址字符串
* @return Long類型的整數
*/
private static Long ipToLong(String ip) {
String[] ipArray = ip.split("\\.");
if (ipArray.length != 4) {
return null;
}
long result = 0;
for (int i = 0; i < ipArray.length; i++) {
long cur = Long.parseLong(ipArray[i]);
result += cur << (24 - 8 * i);
}
return result;
}
/**
* 判斷某個IP地址是否在范圍之內
* @param ip IP地址
* @param begin 范圍開始的IP地址
* @param end 范圍結束的IP地址
* @return true表示在范圍內,false表示不在范圍內
*/
private static boolean isInRange(Long ip, Long begin, Long end) {
return ip >= begin && ip <= end;
}

其中isInternalIp方法用于判斷給定的IP地址是否為內網地址,isExternalIp方法用于判斷是否為外網地址。參數ip必須為字符串類型,如果為IPv4地址,則使用點號(.)分割四個子段,每個子段值為0~255之間的整數。如果要判斷本機地址可以傳入"127.0.0.1"或"localhost"字符串。

isInRange方法用于判斷一個IP地址是否在給定的范圍內,使用Long類型的整數來存儲IP地址值,方便進行比較。在isInternalIp方法中,根據A類、B類、C類地址的范圍判斷是否為內網地址;在isExternalIp方法中,如果不是內網地址則判定為外網地址。