【java】网络编程之IP类(二)

文章目录

    • IP地址
    • InetAddress
    • 测试例子

接下来博客主要整理网络编程里面java对应的类。上一篇大概对网络编程中的相关概念作了梳理,本文只对IP地址这个概念进行介绍。

IP地址

IP地址是用来标识网络中的一个通信实体的地址。通信实体可以是计算机、路由器等等。互联网上的每台服务器都会有自己的IP地址,局域网上的每台计算机也会有IP地址,但是每台设备的IP地址可以是多个的。

IP地址的分类:

  • IPV4:32位地址,以点分十进制表示,每个位数用十进制表示,数之间用点分隔,比如:192.168.0.0
  • IPV6:128位地址(16个字节,1个字节8位),可以写成8个16 (8x16=128)的无符号整数,每个整数用四个十六进制位表示数之间用冒号分隔,比如:3ffe:3201:1411:1280:c8ff:fe4d:db39:1984

特殊的IP地址:

  • 127.0.0.1 代表的是本机地址
  • 192.168.0.0-192.168.255.255 为私有地址,属于非注册地址,专门为组织机构内部使用的

InetAddress

在java中,每个对象都是以类的形式存在的,所以IP地址也是一个类。IP地址对应的java类是InetAddress
【java】网络编程之IP类(二)_第1张图片
InetAddress对象常用的静态方法:
【java】网络编程之IP类(二)_第2张图片
getByName()方法是根据域名DNS或者Ip地址,来解析返回Ip地址的。

常用的成员方法:

  1. getHostAddress(): 返回地址
  2. getHostName():返回计算机名

测试例子

我们可以使用这个类来获取IP地址

import java.net.InetAddress;
import java.net.UnknownHostException;

public class IpTest {
	public static void main(String[] args) throws UnknownHostException {
		// TODO Auto-generated method stub
		InetAddress Ipadd = InetAddress.getLocalHost();
		System.out.println("直接创建对象\n"+Ipadd.getHostAddress());  //返回地址
		System.out.println(Ipadd.getHostName());     //返回计算机名称 
		
		//根据域名得到InetAddress对象
		Ipadd = InetAddress.getByName("www.baidu.com");
		System.out.println("根据域名返回Ip地址\n"+Ipadd.getHostAddress());  //返回百度服务器ip
		System.out.println(Ipadd.getHostName());     //返回域名/服务器名称 
		
		//根据ip得到InetAddress对象
		Ipadd = InetAddress.getByName("182.61.200.6");
		System.out.println("根据Ip地址返回域名\n"+Ipadd.getHostName());     //返回服务器名称 
		//如果Ip地址不存在或者DNS不允许进行IP地址和域名的映射,则返回Ip地址
	
	}

}

结果:

【java】网络编程之IP类(二)_第3张图片

你可能感兴趣的:(java)