美文网首页
InetAddress

InetAddress

作者: 少冰三hun甜 | 来源:发表于2016-09-02 20:58 被阅读208次

    Java socket应用—通信
    ** InetAddress**

    1、InetAddress 类用于标示网络上的硬件资源,标示互联网协议(IP)地址。

    • IP 地址是 IP 使用的 32 位或 128 位无符号数字,它是一种低级协议,UDP 和 TCP协议都是在它的基础上构建的。
      

    2、InetAddress 类的几个常用方法:

    • getHostName
      public String getHostName()

    获取此 IP 地址的主机名。如果此 InetAddress 是用主机名创建的,则记忆并返回主机名;否则,将执行反向名称查找并基于系统配置的名称查找服务返回结果。
    返回:
    此 IP 地址的主机名;如果安全检查不允许操作,则返回 IP 地址的文本表示形式。

    • getAddress
      public byte[] getAddress()

    返回此 InetAddress 对象的原始 IP 地址。结果按网络字节顺序:地址的高位字节位于 getAddress()[0] 中。返回:此对象的原始 IP 地址。getHostAddresspublic String getHostAddress()
    返回 IP 地址字符串(以文本表现形式)。
    返回:
    字符串格式的原始 IP 地址。

    • getByAddresspublic
      static InetAddress getByAddress(String host, byte[] addr)throws UnknownHostException

    根据提供的主机名和 IP 地址创建 InetAddress。不检查名称服务的地址有效性。主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。
    也不在主机名上执行有效性检查。
    如果 addr 指定 IPv4 地址,则返回 Inet4Address 的实例;否则将返回 Inet6Address 的实例。
    IPv4 地址 byte 数组的长度必须为 4 个字节,IPv6 byte 数组的长度必须为 16 个字节
    参数:
    host - 指定主机
    addr - 网络字节顺序的原始 IP 地址
    返回:
    根据原始 IP 地址创建的 InetAddress 对象。

    • getByName
      public static InetAddress getByName(String host) throws UnknownHostException

    在给定主机名的情况下确定主机的 IP 地址。主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。如果提供字面值 IP 地址,则仅检查地址格式的有效性。
    如果主机为 null,则返回表示回送接口地址的 InetAddress。
    参数:
    host - 指定的主机,或 null。
    返回:
    给定主机名的 IP 地址。

    • getByAddress
      public static InetAddress getByAddress(byte[] addr) throws UnknownHostException

    在给定原始 IP 地址的情况下,返回 InetAddress 对象。参数按网络字节顺序:地址的高位字节位于 getAddress()[0] 中。此方法不会阻塞,即不执行任何反向名称服务查找操作。
    IPv4 地址 byte 数组的长度必须为 4 个字节,IPv6 byte 数组的长度必须为 16 个字节
    参数:
    addr - 网络字节顺序的原始 IP 地址
    返回:
    根据原始 IP 地址创建的 InetAddress 对象。

    • getLocalHost
      public static InetAddress getLocalHost() throws UnknownHostException

    返回本地主机。如果有安全管理器,则使用本地主机名和 -1 作为参数来调用其 checkConnect 方法,以查看是否允许该操作。如果不允许该操作,则返回表示回送地址的 InetAddress。
    返回:
    本地主机的 IP 地址。


    3. 示例代码:

    public class Test {
         public static void main(String[] args) throws UnknownHostException {
               //获取本机的InetAddress实例
             InetAddress address=InetAddress.getLocalHost();
               //获取计算机名
             System.out.println("计算机名:"+address.getHostName());       
            //获取IP地址
             System.out.println("IP地址:"+address.getHostAddress());
            //获取字节数组形式的IP地址
             byte[] bytes=address.getAddress();                           
             System.out.println("字节数组形式的IP:"+Arrays.toString(bytes));
             //直接输出InetAddress对象
             System.out.println(address); 
                            
             InetAddress address2=InetAddress .getByName("PC201607091933");
             System.out.println("获取计算机名:"+address2.getHostName());
             System.out.println("获取IP地址:"+address2.getHostAddress());
         }
    }
    
    

    相关文章

      网友评论

          本文标题:InetAddress

          本文链接:https://www.haomeiwen.com/subject/obkkettx.html