zoukankan      html  css  js  c++  java
  • 2、Internet地址(下)

    测试可达性

    InerAddress类有两个isRechable()方法

    可以测试一个特定的节点对向前主机是否可以建立一个网络连接 

    无法连接可能由于阻塞、防火墙等因素

    第一个方法:在指定的时间内得到相应则返回为true

    第二个方法:允许指定从那个本地网络接口建立连接,以及生存时间

            InetAddress byName = InetAddress.getByName("www.baidu.com");
            System.out.println(byName.toString());
            System.out.println(byName.isReachable(1000));

     

    Inet4Address和Inet6Address

     使用以上两个类进行区分IPv4和IPv6地址

    其实可以使用getAddress()返回字节数组的大小进行区分

    Inet4Address覆盖了InetAddress的几个方法,没有改变任何公共方式改变其行为

    Inet6Sddress添加了一个新的方法:

    当且仅当地址实际上是填充在IPv6“容器”中的一个IPv4地址时,这个方法返回为true

    NetworkInterface类

    表示一个本地的IP地址

    可以是一个物理接口,也可以是一个虚拟接口,与机器其他IP地址绑定到同一个物理硬件

    提供的一些方法可以枚举所有本地地址

    并由他们创建对象

    这些InetAddress对象可用于创建socket服务器socket等

    返回一个NetworkInterface对象

    表示指定名字的网络接口

    如果没有这个接口将会返回null

            NetworkInterface wlan = NetworkInterface.getByName("wlan3");
            System.out.println("wlan:" + wlan);

     

    返回一个NetworkInterface对象

    表示指定IP地址绑定的网络接口

    如果主机上没有网络接口与这个IP地址绑定返回为null

            InetAddress byName3 = InetAddress.getByName("127.0.0.1");
            NetworkInterface in = NetworkInterface.getByInetAddress(byName3);
            System.out.println(in);

     

    返回一个java.util.Enumeration

    这个列出本地主机上的所有网络接口

       Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
    
            while (networkInterfaces.hasMoreElements()){
                NetworkInterface net = networkInterfaces.nextElement();
                System.out.println(net);
            }

    一个网络接口可以绑定多个ip

    该方法可以返回一个java.util.Enumeration

    对于这个接口绑定的每一个IP弟子都包含了一个InetAddress

            NetworkInterface wlan = NetworkInterface.getByName("wlan3");
            Enumeration<InetAddress> inetAddresses = wlan.getInetAddresses();
            while (inetAddresses.hasMoreElements()){
                InetAddress address = inetAddresses.nextElement();
                System.out.println(address);
            }

     

     

    返回某个特定特定的NetworkInterface对象名

     返回特定NetworkInterface的一个更友好的名字

            NetworkInterface wlan = NetworkInterface.getByName("wlan3");
            String displayName = wlan.getDisplayName();
            System.out.println(displayName);

     

  • 相关阅读:
    后缀数组 (Suffix Array) 学习笔记
    Miller-Rabin 素性测试 与 Pollard Rho 大整数分解
    [ USACO 2013 OPEN ] Photo
    清华集训2016做题记录
    「UNR#2」黎明前的巧克力
    「UNR#1」奇怪的线段树
    Atcoder Grand Contest 018 E
    「NOI2015」小园丁与老司机
    「集训队作业2018」三角形
    Codeforces 878 E. Numbers on the blackboard
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/10911410.html
Copyright © 2011-2022 走看看