Java判斷IP地址為內(nèi)網(wǎng)IP還是公網(wǎng)IP的方法
本文實(shí)例講述了Java判斷IP地址為內(nèi)網(wǎng)IP還是公網(wǎng)IP的方法。分享給大家供大家參考。具體分析如下:
tcp/ip協(xié)議中,專(zhuān)門(mén)保留了三個(gè)IP地址區(qū)域作為私有地址,其地址范圍如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
那么,直接上代碼吧:
byte[] addr = IPAddressUtil.textToNumericFormatV4(ip);
return internalIp(addr);
}
public static boolean internalIp(byte[] addr) {
final byte b0 = addr[0];
final byte b1 = addr[1];
//10.x.x.x/8
final byte SECTION_1 = 0x0A;
//172.16.x.x/12
final byte SECTION_2 = (byte) 0xAC;
final byte SECTION_3 = (byte) 0x10;
final byte SECTION_4 = (byte) 0x1F;
//192.168.x.x/16
final byte SECTION_5 = (byte) 0xC0;
final byte SECTION_6 = (byte) 0xA8;
switch (b0) {
case SECTION_1:
return true;
case SECTION_2:
if (b1 >= SECTION_3 && b1 <= SECTION_4) {
return true;
}
case SECTION_5:
switch (b1) {
case SECTION_6:
return true;
}
default:
return false;
}
}
希望本文所述對(duì)大家的Java程序設(shè)計(jì)有所幫助。
- java實(shí)現(xiàn)根據(jù)ip地址獲取地理位置的代碼分享
- java實(shí)現(xiàn)ip地址與十進(jìn)制數(shù)相互轉(zhuǎn)換
- java通過(guò)ip獲取客戶端Mac地址的小例子
- java實(shí)現(xiàn)根據(jù)ip地址獲取地理位置
- java中獲取當(dāng)前服務(wù)器的Ip地址的方法
- java中通過(guò)網(wǎng)卡名稱(chēng)獲取IP地址
- Java判斷本機(jī)IP地址類(lèi)型的方法
- java網(wǎng)絡(luò)編程之識(shí)別示例 獲取主機(jī)網(wǎng)絡(luò)接口列表
- java獲取ip地址與網(wǎng)絡(luò)接口的方法示例
相關(guān)文章
Springboot項(xiàng)目打war包docker包找不到resource下靜態(tài)資源的解決方案
今天小編就為大家分享一篇關(guān)于Springboot項(xiàng)目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
springmvc處理響應(yīng)數(shù)據(jù)的解析
今天小編就為大家分享一篇關(guān)于springmvc處理響應(yīng)數(shù)據(jù)的解析,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
詳解SpringBoot讀取resource目錄下properties文件的常見(jiàn)方式
這篇文章主要介紹了SpringBoot讀取resource目錄下properties文件的常見(jiàn)方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Mybatis Mapper XML文件-插入,更新,刪除詳解(insert, updat
這篇文章主要介紹了MyBatis的Mapper XML文件中用于插入、更新和刪除數(shù)據(jù)的語(yǔ)句,包括這些語(yǔ)句的屬性和子元素的使用方法2025-02-02
Java非靜態(tài)成員變量之死循環(huán)(詳解)
下面小編就為大家?guī)?lái)一篇Java非靜態(tài)成員變量之死循環(huán)(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Java?詳細(xì)講解線程的狀態(tài)及部分常用方法
在Java程序中,一個(gè)線程對(duì)象只能調(diào)用一次start()方法啟動(dòng)新線程,并在新線程中執(zhí)行run()方法。一旦run()方法執(zhí)行完畢,線程就結(jié)束了,本篇來(lái)講解Java線程的狀態(tài)以及部分常用方法2022-04-04

