当前位置: 首页 > news >正文

【java】网络编程——IP

IP

简单讲解InetAddress类

先记住一个id地址:127.0.0.1,这是本机的ip地址,之后的笔记中会常常出现。

InetAddress类没有构造方法,获得这个类的对象是通过调用InetAddress类的静态方法实现的。

示例代码

package Net_Study;

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

public class TestInetAddress {
    public static void main(String[] args) {
        try {
            // 查询本机ip地址
            InetAddress addr1 = InetAddress.getByName("127.0.0.1");
            System.out.println(addr1);
            InetAddress addr2 = InetAddress.getLocalHost();
            System.out.println(addr2);
            InetAddress addr3 = InetAddress.getByName("localhost");
            System.out.println(addr3);

            // 查询网站ip地址
            InetAddress addr4 = InetAddress.getByName("www.baidu.com");
            System.out.println(addr4);

            // 常用方法
            // 返回规范的名字——ip
            System.out.println(addr4.getCanonicalHostName());
            // 返回ip
            System.out.println(addr4.getHostAddress());
            // 返回域名,或者自己电脑的名字
            // 网站一般返回域名
            System.out.println(addr4.getHostName());
            // 本机一般返回自己电脑的名字
            System.out.println(addr1.getHostName());


        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
    }
}

运行结果:

/127.0.0.1
小琦/10.84.34.66
localhost/127.0.0.1
www.baidu.com/153.3.238.127
153.3.238.127
153.3.238.127
www.baidu.com
localhost

代码逐行解释及输出结果分析

1. 查询本机 IP 地址
// 查询本机ip地址
InetAddress addr1 = InetAddress.getByName("127.0.0.1");
System.out.println(addr1);
  • InetAddress.getByName("127.0.0.1"):通过 getByName 方法根据指定的 IP 地址字符串获取 InetAddress 对象。127.0.0.1 是本地回环地址,用于测试本地网络连接。
  • 输出结果 /127.0.0.1InetAddress 对象的 toString() 方法默认输出格式为 / 后面跟着 IP 地址。
InetAddress addr2 = InetAddress.getLocalHost();
System.out.println(addr2);
  • InetAddress.getLocalHost():返回本地主机的 InetAddress 对象。
  • 输出结果 小琦/10.84.34.66小琦 是你的计算机名,10.84.34.66 是你当前计算机在局域网中的 IP 地址。
InetAddress addr3 = InetAddress.getByName("localhost");
System.out.println(addr3);
  • InetAddress.getByName("localhost"):根据主机名 localhost 获取 InetAddress 对象,localhost 通常解析为 127.0.0.1
  • 输出结果 localhost/127.0.0.1:主机名 localhost 对应的 IP 地址是 127.0.0.1
2. 查询网站 IP 地址
// 查询网站ip地址
InetAddress addr4 = InetAddress.getByName("www.baidu.com");
System.out.println(addr4);
  • InetAddress.getByName("www.baidu.com"):根据域名 www.baidu.com 获取对应的 InetAddress 对象,该方法会通过 DNS(域名系统)解析域名得到对应的 IP 地址。
  • 输出结果 www.baidu.com/153.3.238.127:域名 www.baidu.com 解析后的 IP 地址是 153.3.238.127
3. 常用方法
// 返回规范的名字——ip
System.out.println(addr4.getCanonicalHostName());
  • addr4.getCanonicalHostName():返回主机的规范名称,通常是经过 DNS 解析后的完全限定域名(FQDN),对于百度的 IP 地址,这里直接返回了对应的 IP 地址 153.3.238.127,这可能是因为 DNS 配置或解析的结果。
// 返回ip
System.out.println(addr4.getHostAddress());
  • addr4.getHostAddress():返回 InetAddress 对象对应的 IP 地址字符串,输出为 153.3.238.127
// 返回主机名,网站返回域名
System.out.println(addr4.getHostName());
  • addr4.getHostName():返回主机名,如果是通过域名获取的 InetAddress 对象,通常会返回该域名,所以输出为 www.baidu.com
// 本机一般返回自己电脑的名字
System.out.println(addr1.getHostName());
  • addr1.getHostName():对于 127.0.0.1 对应的 InetAddress 对象,返回的主机名是 localhost

以上的方法了解即可,不需要死记

相关文章:

  • Vue 中 this 使用指南与注意事项
  • 音视频入门基础:RTP专题(19)——FFmpeg源码中,获取RTP的音频信息的实现(下)
  • 约瑟夫环(1+2)
  • 【JVM】GC 常见问题
  • Python Cookbook-4.3 若列表中某元素存在则返回之
  • 机器学习之特征工程
  • 珠算与珠心算发展简介
  • c语言zixue
  • 并发编程面试题二
  • 从 root 一滴水看 Spring Data JPA 的汪洋大海
  • 前端面试笔试
  • 使用 Nginx 进行前端灰度发布的策略与实践
  • Day16:数组中出现次数超过一半的数字
  • harmonyOS NEXT开发与前端开发深度对比分析
  • C语言数据类型取值范围及格式化符号
  • NVMe集群:加速数据处理
  • 【C语言】自定义类型:结构体,联合,枚举(下)
  • python函数式编程
  • 【教程】继承中的访问控制 C++
  • C 语 言 --- 三 子 棋
  • 长三角议事厅| AI作曲时代:长三角如何奏响数字音乐乐章
  • 七部门联合发布《终端设备直连卫星服务管理规定》
  • 秦洪看盘|资金切换主线,重构市场风格
  • 中央党校(国家行政学院)举行2025年春季学期第一批进修班毕业典礼
  • “80后”杨占旭已任辽宁阜新市副市长,曾任辽宁石油化工大学副校长
  • “人工智能是年轻的事业,也是年轻人的事业”,沪上高校师生畅谈感想