JAVAIP地址用一个整形表示,IP地址和Int互转

采风文学屋JAVAIP地址⽤⼀个整形表⽰,IP地址和Int互转
IP 地址分为4个字段,每个字段范围是0-255,刚好⽤⼀个字段可以表⽰,JAVA⼀个int是4个字节,每个字节表⽰⼀个IP 段。代码:
public class TestIPInt extends TestCase {
public void testIPToInt() {
int ip1 = 1;
int ip2 = 1;
ai ei ui 教学设计int ip3 = 1;
int ip4 = 2;
//1.1.1.2 ==16843010
//255.255.255.255 == -1
int ipint = ipToInt(ip1, ip2, ip3, ip4);
System.out.println("ipint:" + ipint);
int[] ipArr = intToIp(ipint);
for (int i = 0; i < 4; i++) {
System.out.print(ipArr[i] + ".");
}
System.out.println();
中岛敦}
/**
* ip to int
* sample:192 168 1 2
*
* @param ip1
* @param ip2
* @param ip3
* @param ip4
* @return
*/
public int ipToInt(int ip1, int ip2, int ip3, int ip4) {
return ipToInt(new int[]{ip1, ip2, ip3, ip4});
}
public int ipToInt(int[] ipArr) {
int ipInt = 0;
for (int i = 0; i < ipArr.length; i++) {
ipInt <<= 8;
ipInt ^= (byte) ipArr[i] & 255;
}
return ipInt;
}
public int[] intToIp(int ipInt) {
int[] ipArr = new int[4];
for (int i = 0; i < 4; i++) {
ipArr[3 - i] ^= (byte) ipInt & 255;
ipInt >>>= 8;
}
return ipArr;
}
private int byteToInt(byte[] bytes) {
//        Int(bytes, 0);
int n = 0;
int offset = 0;夏奈尔女装
int length = 4;
for (int i = offset; i < offset + length; ++i) {
n <<= 8;
n ^= bytes[i] & 255;
}
return n;
}
private byte[] intToByte(int val) {
int offset = 0;
byte[] bytes = new byte[4];
for (int i = offset + 3; i > offset; --i) {
bytes[i] = (byte) val;
val >>>= 8;
}
三鹿奶bytes[offset] = (byte) val;
return bytes;欧姆表
} }

本文发布于:2024-09-20 13:47:53,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/117803.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字段   采风   互转   设计   地址   文学   IP地址
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议