JAVA中IP和整数相互转化介绍
?? blog迁移至:http://www.micmiu.com
?
在项目中经常会用到IP(v4)范围判定比较的功能,一般将IP转化为整数再进行比较。
一、基本知识点
?
IP ——> 整数:
把IP地址转化为字节数组通过左移位(<<)、与(&)、或(|)这些操作转为int整数 ——> IP:
将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到的数字即为第一段IP。将整数值进行右移位操作(>>>),右移16位,再进行与操作符(&)0xFF,得到的数字即为第二段IP。将整数值进行右移位操作(>>>),右移8位,再进行与操作符(&)0xFF,得到的数字即为第三段IP。将整数值进行与操作符(&)0xFF,得到的数字即为第四段IP。二、java代码示例
??? IPv4Util.java
?
引用
测试运行结果:
IP: 192.168.8.1 ByInet --> byte[]: [ -64,-88,8,1 ]
IP: 192.168.8.1 ByReg? --> byte[]: [ -64,-88,8,1 ]
byte[]: -64,-88,8,1 --> IP: 192.168.8.1
IP: 192.168.8.1? --> int: -1062729727
int: -1062729727 --> IP: 192.168.8.1
192.168.1.1/24 --> int地址段:[ -1062731520,-1062731265 ]
192.168.1.1/24 --> IP 地址段:[ 192.168.1.0,192.168.1.255 ]
192.168.1.1 , 255.255.255.0? --> int地址段 :[ -1062731520,-1062731265 ]
192.168.1.1 , 255.255.255.0? --> IP地址段 :[ 192.168.1.0,192.168.1.255 ]?
?
转载请注明来自:Michael's blog @ http://sjsky.iteye.com
------------------------------ 分 ------------------------------ 隔 ------------------------------ 线 ------------------------------?
?
?