InetAddress

2016-09-02  本文已影响208人  少冰三hun甜

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

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

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

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

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

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

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

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

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

返回本地主机。如果有安全管理器,则使用本地主机名和 -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());
     }
}

上一篇下一篇

猜你喜欢

热点阅读