<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    IP地址轉(zhuǎn)化成整數(shù)

    Posted on 2009-12-11 22:48 啥都寫點(diǎn) 閱讀(3097) 評(píng)論(0)  編輯  收藏 所屬分類: J2SE

     關(guān)鍵技術(shù):

       將IP地址轉(zhuǎn)化成整數(shù)的關(guān)鍵技術(shù)點(diǎn)如下:

          1、通過String的indexOf方法找出IP字符串中的"."的位置
          2、根據(jù)點(diǎn)的位置,使用String的substring方法把IP字符串分成4段
          3、使用Long的parselong方法把子段轉(zhuǎn)化為一個(gè)3位數(shù)
          4、通過左移位操作(<<)給每一段的數(shù)字加權(quán),第一段的權(quán)為2的24次方,第二段的權(quán)為2的16次方,第三段的權(quán)為2的8次方,最后一段的權(quán)為1.


       將整數(shù)形式的IP地址轉(zhuǎn)化成字符串的技術(shù)點(diǎn)如下:

          1、將整數(shù)值進(jìn)行右移位操作(>>),右移24位,右移時(shí)高位補(bǔ)0,得到的數(shù)字即為第一段IP。
          2、通過與操作符(&)將整數(shù)值的高8位設(shè)位0,再右移16位,得到的數(shù)字即為第二段IP。
          3、通過與操作符把整數(shù)值的高16位設(shè)為0,再右移8位,得到的數(shù)字即為第三段IP。
          4、通過與操作符把整數(shù)值的高24位設(shè)為0,得到的數(shù)字即為第四段IP。
        
    public class IP2Long {
        
    //將127.0.0.1 形式的IP地址轉(zhuǎn)換成10進(jìn)制整數(shù),這里沒有進(jìn)行任何錯(cuò)誤處理
        public static long ipToLong(String strIP){
             
    long[] ip=new long[4];
             
    //先找到IP地址字符串中.的位置
             int position1=strIP.indexOf(".");
             
    int position2=strIP.indexOf(".",position1+1);
             
    int position3=strIP.indexOf(".",position2+1);
             
    //將每個(gè).之間的字符串轉(zhuǎn)換成整型
             ip[0]=Long.parseLong(strIP.substring(0,position1));
             ip[
    1]=Long.parseLong(strIP.substring(position1+1,position2));
             ip[
    2]=Long.parseLong(strIP.substring(position2+1,position3));
             ip[
    3]=Long.parseLong(strIP.substring(position3+1));
             
    return (ip[0]<<24)+(ip[1]<<16)+(ip[2]<<8)+ip[3]; 
        }


        
    //將10進(jìn)制整數(shù)形式轉(zhuǎn)換成127.0.0.1形式的IP地址
        public static String longToIP(long longIP){
             StringBuffer sb
    =new StringBuffer("");
             
    //直接右移24位
             sb.append(String.valueOf(longIP>>>24));
             sb.append(
    ".");          
             
    //將高8位置0,然后右移16位
             sb.append(String.valueOf((longIP&0x00FFFFFF)>>>16)); 
             sb.append(
    ".");
             sb.append(String.valueOf((longIP
    &0x0000FFFF)>>>8));
             sb.append(
    ".");
             sb.append(String.valueOf(longIP
    &0x000000FF));
             
    return sb.toString(); 
        }
     
        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            String ipStr 
    = "192.168.0.1";
            
    long ipLong = IP2Long.ipToLong(ipStr);
            System.out.println(
    "192.168.0.1 的整數(shù)形式為: " + ipLong);
            System.out.println(
    "整數(shù)" + ipLong + "轉(zhuǎn)化成字符串IP地址: " 
                    
    + IP2Long.longToIP(ipLong));
            
    //IP地址轉(zhuǎn)化成二進(jìn)制形式輸出
            System.out.println("192.168.0.1 的二進(jìn)制形式為: " 
                    
    + Long.toBinaryString(ipLong));
        }

    }



                                                                                                           --    學(xué)海無涯
            

    主站蜘蛛池模板: 视频一区二区三区免费观看| 亚洲国产成人手机在线电影bd| 国产精品日本亚洲777| 免费福利在线播放| 色偷偷亚洲女人天堂观看欧| 可以免费看的卡一卡二| 亚洲人成电影青青在线播放| 57PAO成人国产永久免费视频| 国产精品亚洲四区在线观看| 女人毛片a级大学毛片免费| 亚洲精华液一二三产区| 日韩a在线观看免费观看| 羞羞网站免费观看| 久久亚洲国产精品五月天婷| 伊人久久大香线蕉免费视频| 水蜜桃亚洲一二三四在线| www视频免费看| 亚洲精品久久无码av片俺去也 | 亚洲国产成人精品91久久久| 日韩在线观看视频免费| 亚洲国产精品一区二区成人片国内| 久久精品视频免费播放| 国产91在线|亚洲| 亚洲成aⅴ人片久青草影院| 中文在线观看免费网站| 久久亚洲精品无码aⅴ大香| 我要看WWW免费看插插视频| 日本亚洲高清乱码中文在线观看| AV在线亚洲男人的天堂| 99久久免费精品视频| 亚洲精品人成网线在线播放va| 久久久久久A亚洲欧洲AV冫| 中文字幕视频免费| 久久综合亚洲色hezyo| 国产亚洲高清不卡在线观看| 成人福利免费视频| 特级做a爰片毛片免费看| 亚洲日韩乱码中文无码蜜桃| 国产做床爱无遮挡免费视频| 97av免费视频| 四虎国产精品永免费|