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));
//      判断是否可达
    }
}

Java程序设计 网络编程 IP地址与InetAddress类_百度