一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java編程IP地址和數字相互轉換代碼示例

Java編程IP地址和數字相互轉換代碼示例

2021-02-24 14:03Lena-Yang Java教程

這篇文章主要介紹了Java編程IP地址和數字相互轉換代碼示例,具有一定借鑒價值,需要的朋友可以參考下。

最近才知道,將ip地址轉換成十進制、八進制、十六進制同樣可以訪問網站。

IP轉為數字(第二種算法。用左移、按位或實現。效率更高。):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public long ipToLong(String ipAddress) {
 
long result = 0;
 
String[] ipAddressInArray = ipAddress.split("\\.");
 
for (int i = 3; i >= 0; i--) {
 
  long ip = Long.parseLong(ipAddressInArray[3 - i]);
 
  //left shifting 24,16,8,0 and bitwise OR
 
  //1. 192 << 24
  //1. 168 << 16
  //1. 1  << 8
  //1. 2  << 0
  result |= ip << (i * 8);
 
}
return result;
 }

數字轉為IP,兩種算法都差不多:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//ip = 3232235778
 public String longToIp(long ip) {
StringBuilder result = new StringBuilder(15);
 
for (int i = 0; i < 4; i++) {
 
  result.insert(0,Long.toString(ip & 0xff));
 
  if (i < 3) {
    result.insert(0,'.');
  }
 
  ip = ip >> 8;
}
return result.toString();
 }
 
 //ip = 3232235778
 public String longToIp2(long ip) {
 
return ((ip >> 24) & 0xFF) + "."
  + ((ip >> 16) & 0xFF) + "."
  + ((ip >> 8) & 0xFF) + "."
  + (ip & 0xFF);
 }

完整代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
public class JavaBitwiseExample {
  
  public static void main(String[] args) {
  
    JavaBitwiseExample obj = new JavaBitwiseExample();
  
    System.out.println("iptoLong : " + obj.ipToLong("192.168.1.2"));
    System.out.println("iptoLong2 : " + obj.ipToLong2("192.168.1.2"));
  
    System.out.println("longToIp : " + obj.longToIp(3232235778L));
    System.out.println("longToIp2 : " + obj.longToIp2(3232235778L));
  
  }
  
  // example : 192.168.1.2
  public long ipToLong(String ipAddress) {
  
    // ipAddressInArray[0] = 192
    String[] ipAddressInArray = ipAddress.split("\\.");
  
    long result = 0;
    for (int i = 0; i < ipAddressInArray.length; i++) {
  
      int power = 3 - i;
      int ip = Integer.parseInt(ipAddressInArray[i]);
  
      // 1. 192 * 256^3
      // 2. 168 * 256^2
      // 3. 1 * 256^1
      // 4. 2 * 256^0
      result += ip * Math.pow(256, power);
  
    }
  
    return result;
  
  }
  
  public long ipToLong2(String ipAddress) {
  
    long result = 0;
  
    String[] ipAddressInArray = ipAddress.split("\\.");
  
    for (int i = 3; i >= 0; i--) {
  
      long ip = Long.parseLong(ipAddressInArray[3 - i]);
  
      // left shifting 24,16,8,0 and bitwise OR
  
      // 1. 192 << 24
      // 1. 168 << 16
      // 1. 1 << 8
      // 1. 2 << 0
      result |= ip << (i * 8);
  
    }
  
    return result;
  }
  
  public String longToIp(long i) {
  
    return ((i >> 24) & 0xFF) + 
          "." + ((i >> 16) & 0xFF) + 
          "." + ((i >> 8) & 0xFF) + 
          "." + (i & 0xFF);
  
  }
  
  public String longToIp2(long ip) {
    StringBuilder sb = new StringBuilder(15);
  
    for (int i = 0; i < 4; i++) {
  
      // 1. 2
      // 2. 1
      // 3. 168
      // 4. 192
      sb.insert(0, Long.toString(ip & 0xff));
  
      if (i < 3) {
        sb.insert(0, '.');
      }
  
      // 1. 192.168.1.2
      // 2. 192.168.1
      // 3. 192.168
      // 4. 192
      ip = ip >> 8;
  
    }
  
    return sb.toString();
  }
}

總結

以上就是本文關于Java編程IP地址和數字相互轉換代碼示例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出!

原文鏈接:http://blog.csdn.net/hardwin/article/details/17262909

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 清清草在线视频 | 色综合天天综合网国产人 | 人禽l交视频在线播放 视频 | 114毛片免费观看网站 | 精品国产精品人妻久久无码五月天 | 二区三区在线观看 | 日韩精品1| 国产欧美日韩在线播放 | 性伴交换多p | 2021国产精品视频一区 | 国产在线播放一区 | 纲手被漫画aⅴ | 欧美午夜视频一区二区 | 福利视频一区二区三区 | 天天操天天射天天爽 | 人人人人看人人人做人人 | 18国产精品白浆在线观看免费 | 国产成人在线视频 | 久久亚洲精品AV无码四区 | 性夜影院爽黄A爽免费动漫 性色欲情网站IWWW九文堂 | 性欧美f| 不卡日本 | 国产精品久久久久久久久免费hd | 国产精品秒播无毒不卡 | 欧美日韩国产精品自在自线 | 女教师系列三上悠亚在线观看 | 免费观看欧美性一级 | 精品国产福利一区二区在线 | 狠狠鲁视频| 欧美视频久久 | 亚洲黄色三级视频 | 国产私人影院 | 黑人好大| 日本高清在线精品一区二区三区 | 亚洲va韩国va欧美va天堂 | 玩高中女同桌肉色短丝袜脚文 | freesex性欧美炮机喷潮 | 女教师三级做受 | 日韩在线 在线播放 | 挺进白嫩老师下面视频 | 免费国产在线观看 |