Java程序设计 网络编程 IP地址与InetAddress类
IP地址
互联网上的每一台计算机都有一个唯一表示自己的标记,这个标记就是IP地址
IP地址使用32位长度二进制数据表示,一般在实际中看到的大部分IP地址都是以十进制的数据形式表示
IP地址格式
网络地址+主机地址
网络号:用于识别主机所在的网络
主机号:用于识别该网络中的主机
IP地址分为:
- A类保留给政府机构
 - B类分配给中等规模的公司
 - C类分配给任何需要的人
 - D类用于组播
 - E类用于实验
 
| 分类 | 范围 | 
|---|---|
| A类地址 | 1.0.0.1-126.255.255.254 | 
| B类地址 | 128.0.0.1-191.255.255.254 | 
| C类地址 | 192.0.0.1-223.255.255.254 | 
| D类地址 | 224.0.0.1-239.255.255.254 | 
| E类地址 | 240.0.0.1-255.255.255.254 | 
127.X.X.X是保留地址用作循环测试,在开发中经常使用127.0.0.1表示本机的IP地址
IPV4与IPV6
PV4(Internet Protocol version 4)是互联网协议的第4个版本,也是最广泛使用的版本。但是IPV4已经无法满足当今互联网的主机数量,所以在此基础上又产生了新的版本IPV6,使用IPV6可以比IPV4容纳更多的主机。
InetAddress类
InetAddress类主要表示IP地址,这个类有两个子类:Inet4Address、Inet6Address,一个用于表示IPV4协议,另一个表示IPV6协议
InetAddress类
| 方法 | 作用 | 
|---|---|
| public static InetAddress getByName(String host) throws UnknownHostException | 通过主机名称得到InetAddress对象 | 
| public static InetAddress getLocalHost() throws UnknownHostException | 通过本机得到InetAddress对象 | 
| public String getHostName() | 得到IP地址 | 
| public boolean isReachable(int timeout) throws IOException | 判断地址是否可达,同时指定超时时间 | 
import java.net.InetAddress;
public class Hello {
    public static void main(String[] args) throws Exception{
//        抛出所有异常
        InetAddress locAdd = null;
        InetAddress remAdd = null;
        locAdd = InetAddress.getLocalHost();
//        得到本地InetAddress对象
        remAdd = InetAddress.getByName("www.baidu.com");
//        得到百度的InetAddress对象
        System.out.println(locAdd.getHostAddress());
//        打印本地IP地址
        System.out.println(remAdd.getHostAddress());
//        打印百度的IP地址
        System.out.println(locAdd.isReachable(5000));
//      判断是否可达
    }
}
 











