java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供了普通字符串和appliction/x-www-form-urlencoded MIME 字符串相互转换的静态方法。
使用InetAddress类(实现的接口是Serializable序列化接口):
java提供了InetAddress类代表IP地址,InetAddress下还有两个子类:Inet4Address、Inet6Address,他们分别代表IPv4和IPv6地址。
InetAddress没有提供构造器,而是提供了如下两个静态方法来获取InetAddress实例。
1、getByName(String host):根据主机获取对应的InetAddress对象。
2、getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。
static InetAddress[] |
getAllByName(String host) 在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。 |
static InetAddress |
getByAddress(byte[] addr) 在给定原始 IP 地址的情况下,返回 InetAddress 对象。 |
static InetAddress |
getByAddress(String host, byte[] addr) 根据提供的主机名和 IP 地址创建 InetAddress。 |
static InetAddress |
getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。 |
InetAddress还提供了如下三个方法来获取InetAddress实例对应的IP地址和主机名。
1、String getCanonicalHostName():获取此IP地址的全限定域名。
2、String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式).
3、String getHostName():获取此IP地址的主机名。
除此之外,InetAddress类还提供了一个getLocalHost()方法来获取本机IP地址对应的InetAddress实例。
InetAddress类还提供了一个isReachable()方法,用于测试是否可以到达该地址,该方法将尽最大努力试图到达主机。
1 import java.net.InetAddress; 2 public class InetAddressClass 3 { 4 public static void main(String[] arg) throws Exception{ 5 //根据主机名来获取对应的InetAddress实例 6 InetAddress ip=InetAddress.getByName("www.baidu.com"); 7 //判断是否可到达 8 System.out.println("baidu是否可达到:"+ip.isReachable(2000)); 9 //获得该InetAddress实例的IP字符串 10 System.out.println(ip.getHostAddress()); 11 //根据原始IP地址来获取对应的InetAddress实例 12 InetAddress local=InetAddress.getByAddress(new byte[]{127,0,0,1}); 13 //判断主机是否可到达 14 System.out.println("本机主机是否可以到达:"+local.isReachable(2000)); 15 //获取该InetAddress实例对用的全限定域名 16 System.out.println(local.getCanonicalHostName()); 17 } 18 }