6.24Java网络编程之IP

6.24Java网络编程之IP

定位、传输协议

在域名和IP地址之间有一个域名解析--->DNS

DNS的作用:将IP地址转成有意义的字符串。将字符串映射成IP地址

定位

  • IP

  • 端口

  • url

IP

作用:

标识网络中的一个通信实体的地址(是一个地址)

通信实体:

  • 计算机

  • 路由器

  • 服务器--->服务器不止一个,通常是服务器集群

  • ...

(互联网每个服务器都有一个Ip地址,每个局域网计算机也要有IP地址)

IP地址分类
  • IPV4:32位地址,以点分十进制表示,如:192.168.0.1(由于互联网的普及资源紧缺)

  • IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用4个16进制位表示,数之间用冒号(:)分开。如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984

特殊IP:

  • 127.0.0.1本机地址

  • 192.168.0.0--192.168.255.255私有地址,属于非法注册地址,专门为组织机构内部使用。

Java中InetAddress类封装IP地址

该类没有构造器,但是提供了具体的方法。可以直接返回我们的类的对象

InetAddress方法返回的IP地址和域名

package netstudy;

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

/**
* IP:定位一个节点
* 1、计算机节点
* 2、路由节点
* 3、服务器节点
* 4、路由节点
* ...
* InetAddress类--->提供了多个静态方法
* 1、getLocalHost:返回本机ip地址
* 2、getByName:根据域名DNS | IP地址--->IP
* 成员方法:
* 1、getHostAddress:返回地址
* 2、getHostName:返回计算机名
* @since JDk 1.8
* @date 2021/6/24
* @author Lucifer
*/
public class IPTestNo1 {

   public static void main(String[] args) throws UnknownHostException {

       //使用getLocalHost方法创建InetAddress对象 本机
       InetAddress address = InetAddress.getLocalHost();

       /*输出获取到的内容*/
       System.out.println(address.getHostAddress()); //返回本机ip
       System.out.println(address.getHostName()); //输出计算机名

       //根据域名获取具体的IP地址(获得InetAddress对象)
       address = InetAddress.getByName("xxx.xxxxxx.com"); //底层已经用到了DNS

       /*输出获取到的服务器*/
       System.out.println(address.getHostAddress()); //返回该域名的ip
       System.out.println(address.getHostName()); //输出域名

       //根据IP得到InetAddress对象
       address = InetAddress.getByName("xxx.x.xx.xxx");

       /*输出获取到的内容*/
       System.out.println(address.getHostAddress()); //返回服务器的ip
       System.out.println(address.getHostName()); //输出ip而不是域名
       /*
       如果这个ip地址不存在或者DNS不允许进行IP地址和域名映射
       getName方法就直接返回输入的IP地址
        */
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14928354.html