熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

java中IP地址轉換十進制數實現代碼

2013-11-15 12:15:13  來源: JSP教程 

  先看實例

  代碼如下
class ip
{
private static long iptolong(string strip)
//將 形式的ip地址轉換成進制整數這裡沒有進行任何錯誤處理
{
int j=;
int i=;
long [] ip=new long[];
int position=stripindexof("");
int position=stripindexof(""position+);
int position=stripindexof(""position+);
ip[]=longparselong(stripsubstring(position));
ip[]=longparselong(stripsubstring(position+position));
ip[]=longparselong(stripsubstring(position+position));
ip[]=longparselong(stripsubstring(position+));
return (ip[]<<)+(ip[]<<)+(ip[]<<)+ip[]; //ip***+ip**+ip*+ip
}
private static string longtoip(long longip)
//將進制整數形式轉換成形式的ip地址在命令提示符下輸入ping l
{
stringbuffer sb=new stringbuffer("");
sbappend(stringvalueof(longip>>>));//直接右移
sbappend("");
sbappend(stringvalueof((longip&xffffff)>>>)); //將高位置然後右移
sbappend("");
sbappend(stringvalueof((longip&xffff)>>>));
sbappend("");
sbappend(stringvalueof(longip&xff));
sbappend("");
return sbtostring();
}
public static void main(string[] args)
{
systemoutprintln("ip地址的各種表現形式rn");
systemoutprint("位二進制形式");
systemoutprintln(longtobinarystring(l));
systemoutprint("十進制形式");
systemoutprintln(iptolong(""));
systemoutprint("普通形式");
systemoutprintln(longtoip(l));
}
}
 

  運行結果

  ip地址的各種表現形式

  位二進制形式
十進制形式
普通形式

  輸出完成 (耗時 秒) 正常終止

  我們再一步步分開來分析一下
知識點一個二進制數按位左移n位就是把該數的值乘以的n次方

  二進制除二即右移一位

  IP地址轉換為整數

  原理IP地址每段可以看成是位無符號整數即把每段拆分成一個二進制形式組合起來然後把這個二進制數轉變成

  一個無符號為整數

  舉例一個ip地址為

  每段數字 相對應的二進制數

      

        

        

    

  組合起來即為 轉換為進制就是即該IP地址轉換後的數字就是它了

  代碼如下 
public class Ip {  
    public static void main(String[] args) {  
        Systemoutprint(ipint(""));  
    }  
 
    public static long ipint(String ip) {  
       String[] items = ipsplit("");  
        return LongvalueOf(items[]) <<    
                | LongvalueOf(items[]) <<  
                | LongvalueOf(items[]) <<    
                | LongvalueOf(items[]);  
    }  
 
}  

  整數轉換為IP地址

  原理把這個整數轉換成一個位二進制數從左到右位進行一下分割得到位的二進制數把這些二進制數轉換成整數然後加上””就是這個ip地址了

  舉例

  二進制表示形式為

  分割成四段分別轉換為整數後加上“”就得到了

  代碼如下

  public class Ip {  
    public static void main(String[] args) {  
        Systemoutprint(intip());  
    }  
 
   public static String intip(long ipInt) {  
       StringBuilder sb = new StringBuilder();  
        sbappend(ipInt & xFF)append("");  
        sbappend((ipInt >> ) & xFF)append("");  
        sbappend((ipInt >> ) & xFF)append("");  
        sbappend((ipInt >> ) & xFF);  
        return sbtoString();  
    }   
 

 


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20576.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.