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

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

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

    隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    Java網(wǎng)絡(luò)編程從入門(mén)到精通(10):Inet4Address類和Inet6Address類

    本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!

    上一篇:Java網(wǎng)絡(luò)編程從入門(mén)到精通 (9):使用isXxx方法判斷地址類型

        為了區(qū)分IPv4IPv6地址,Java提供了兩個(gè)類:Inet4AddressInet6Address,它們都是InetAddress類的子類,這兩個(gè)類的定義如下:

    public final class Inet4Address extends InetAddress
    public final class Inet6Address extends InetAddress

    這兩個(gè)類分別按著IPv4IPv6的規(guī)則實(shí)現(xiàn)了InetAddress類中的public方法。它們所不同的是Inet6Address類比Inet4Address類多了一個(gè)方法:isIPv4CompatibleAddress,這個(gè)方法用來(lái)判斷一個(gè)IPv6地址是否和IPv4地址兼容。和IPv4兼容的IPv6地址除了最后四個(gè)字節(jié)有值名,其他的字節(jié)都是0,如0:0:0:0:0:0.192.168.18.10、::ABCD:FAFA都是和IPv4兼容的IPv6地址。

    當(dāng)使用InetAddress類的四個(gè)靜態(tài)方法創(chuàng)建InetAddress對(duì)象后,可以通過(guò)getAddress返回的byte數(shù)組來(lái)判斷這個(gè)IP地址是IPv4還是IPv6地址(byte數(shù)組長(zhǎng)度為4就是IPv4地址,byte數(shù)組長(zhǎng)度為16就是IPv6地址),也可以將instanceof來(lái)確定InetAddress對(duì)象是它的哪個(gè)子類的實(shí)例。下面的代碼演示了如何判斷一個(gè)IP地址是IPv4還是IPv6地址:

    package mynet;

    import java.net.*;

    public class MyIP
    {
        
    public static void main(String[] args) throws Exception
        {
            
    if (args.length == 0)
                
    return;
            InetAddress address 
    = InetAddress.getByName(args[0]);
            System.out.println(
    "IP: " + address.getHostAddress());
            
    switch (address.getAddress().length)
            {
                
    case 4:
                    System.out.println(
    "根據(jù)byte數(shù)組長(zhǎng)度判斷這個(gè)IP地址是IPv4地址!");
                    
    break;
                
    case 16:
                    System.out.println(
    "根據(jù)byte數(shù)組長(zhǎng)度判斷這個(gè)IP地址是IPv6地址!");
                    
    break;
            }
            
    if (address instanceof Inet4Address)
                System.out.println(
    "使用instanceof判斷這個(gè)IP地址是IPv4地址!");
            
    else if (address instanceof Inet6Address)
                System.out.println(
    "使用instanceof判斷這個(gè)IP地址是IPv6地址!");
        }
    }

    測(cè)試1

    執(zhí)行如下命令:

    java mynet.MyIP www.csdn.net

    運(yùn)行結(jié)果:

    IP: 211.100.26.122
    根據(jù)byte數(shù)組長(zhǎng)度判斷這個(gè)IP地址是IPv4地址!
    使用instanceof判斷這個(gè)IP地址是IPv4地址!

    測(cè)試2

    執(zhí)行如下命令:

    java mynet.MyIP www.neu6.edu.cn

    運(yùn)行結(jié)果

    IP: 2001:da8:9000:b255:200:e8ff:feb0:5c5e
    根據(jù)byte數(shù)組長(zhǎng)度判斷這個(gè)IP地址是IPv6地址!
    使用instanceof判斷這個(gè)IP地址是IPv6地址!

     

    下一篇:Java網(wǎng)絡(luò)編程從入門(mén)到精通(11):使用NetworkInterface類獲得網(wǎng)絡(luò)接口信息



    Android開(kāi)發(fā)完全講義(第2版)(本書(shū)版權(quán)已輸出到臺(tái)灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-05-04 19:13 銀河使者 閱讀(5967) 評(píng)論(0)  編輯  收藏 所屬分類: java 原創(chuàng) 、網(wǎng)絡(luò)編程

    主站蜘蛛池模板: 亚洲一区二区观看播放| 亚洲成a人片在线看| 亚洲国产精品成人综合色在线婷婷 | a毛片全部免费播放| 99精品国产成人a∨免费看| a毛片基地免费全部视频| 国产免费观看视频| 亚洲色精品88色婷婷七月丁香 | 亚洲成a人片在线不卡| 女bbbbxxxx另类亚洲| 国产一精品一AV一免费| 亚洲人成电影网站免费| 亚洲乱亚洲乱少妇无码| 久久精品视频亚洲| 亚洲日韩精品无码专区| 中文字幕a∨在线乱码免费看 | 波多野结衣在线免费视频| 国产区卡一卡二卡三乱码免费| 亚洲中文字幕无码一区| 亚洲人成电影网站| 一级做a爱过程免费视频高清| 91在线手机精品免费观看| 国产一区二区三区免费在线观看| 国产AV无码专区亚洲精品| 在线aⅴ亚洲中文字幕| aa在线免费观看| 女人张腿给男人桶视频免费版| 亚洲女久久久噜噜噜熟女| 亚洲1区1区3区4区产品乱码芒果 | aa级女人大片喷水视频免费| 黄页网站在线看免费| 在线亚洲精品自拍| 亚洲偷自拍另类图片二区| a级毛片高清免费视频就| 最近中文字幕无免费视频| 亚洲午夜未满十八勿入网站2| 亚洲首页国产精品丝袜| 国产一区二区三区免费观看在线 | 成全高清视频免费观看| 亚洲AV人无码激艳猛片| 日韩大片免费观看视频播放|