/*
网络程序包---java.net
类 InteAddrss 描述IP地址
该类没有构造函数,有静态方法,有非静态方法
静态方法会返回该类的一个引用
static InetAddress getByName(String host) //以IP地址为主,获取InetAddress对象
在给定主机名的情况下确定主机的IP地址
staitc InetAddress getLocalHost()
返回本地主机
String getHostAddress()
返回IP地址字符串
String getHostName()
获取此IP地址的主机名
*/
import java.net.*;
class IPDemo
{
public static void main(String[] args) throws Exception
{
//获取本地主机信息
InetAddress i = InetAddress.getLocalHost();
System.out.println("获取本地主机信息:"+i);
//获取主机名
String name = i.getHostName();
System.out.println("本地主机名:"+name);
//获取主机地址
String addr = i.getHostAddress();
System.out.println("本地主机IP地址:"+addr);
//获取任意一台主机的IP地址对象
InetAddress by = i.getByName("127.0.0.1");//给定本机的IP地址或者主机名,主机名或IP地址都可以
System.out.println("获取IP地址为127.0.0.1的主机名:"+by.getHostName());
System.out.println("获取IP地址为127.0.0.1的主机IP地址:"+by.getHostAddress());
//联网情况下才可以获取,如果没有解析成功,则返回给定的信息
//给定IP地址或者主机名(如:www.baidu.com)。由于百度不止一台主机,在获取时可能会得到不同的IP地址
//以名称为地址,会有一个解析的过程。DNS域名服务器。将地址与IP地址进行转换
//所以,一般都IP地址为主。不涉及解析的过程,效率高。
//InetAddress ia = i.getByName("www.baidu.com");//获取百度的IP地址对象
InetAddress ia = i.getByName("197.9.20.1");
String iname = ia.getHostName();
System.out.println("获取IP地址为197.9.20.1的主机名:"+iname);
String iaddr = ia.getHostAddress();
System.out.println("获取IP地址为197.9.20.1的主机IP地址:"+iaddr);
}
}