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

IP地址封装类(InetAddress类)

文章目录

  • 前言
  • 一、IP地址是什么?
  • 二、IP地址封装类
    • 1.常用方法
    • 2.实操展示
  • 总结

前言

        当我们想要获取到通信对方的IP地址、主机地址等信息时,我们可以使用InetAddress类。InetAddress类在java的net包中。


一、IP地址是什么?

        IP地址 (Internet Protocol address) 是一组用于标识和定位计算机网络中设备的数字。

        IP地址的作用类似于门牌号,用于识别网络中的设备。它由32位或128位的数字组成,以点分四组或冒号分八组进行表示。在IPv4中,通常以 xxx.xxx.xxx.xxx 的形式表示,其中每个xxx可以是0-255之间的数字。在IPv6中,以 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx 的形式表示。

        IP地址的主要用途是在互联网上进行网络通信和数据传输。每个设备在网络中都有一个唯一的IP地址,以便可以准确地发送和接收数据。

        (1)特殊的IP地址:本地回送地址

        本地回送地址(Loopback Address)是一个被保留的IP地址,用于在本地主机上进行网络通信测试和故障排除。

        在IPv4中,本地回送地址是127.0.0.1,而在IPv6中,本地回送地址是::1。

        当计算机向本地回送地址发送数据时,操作系统会将数据立即返回给发送者,而不进行网络传输。这使得应用程序可以自己与自己进行通信,以验证网络功能是否正常。本地回送地址在开发和测试网络应用程序时非常有用。

        (2)IP地址与网址的关系:

        IP地址和网址之间存在一种映射关系。当我们在浏览器中输入一个网址,例如www.baidu.com,实际上浏览器会通过域名系统(DNS)将网址转换为相应的IP地址,然后再通过该IP地址找到对应的服务器,最终访问所需的网页内容。

        因此,IP地址是一个唯一标识网络设备的数字地址,而网址是一个便于人们记忆和使用的域名,通过域名系统将网址转换为IP地址,实现对服务器的访问。

        简而言之,IP地址是服务器的具体地址,而网址是IP地址的别名。

        (3)关于IP地址泄露的危害:

        追踪和定位:通过IP地址,攻击者可能能够追踪和定位您的物理位置。这可能会导致入侵者直接攻击您的电脑或实施其他恶意行为。

        网络攻击:攻击者可以使用您的IP地址来进行网络攻击,如端口扫描、DDoS攻击等,以尝试入侵您的网络或服务。

        个人信息暴露:有时候,IP地址可能与其他个人信息相关联,如您的姓名、地址等。通过IP地址的泄露,攻击者可能得到更多的个人信息,从而进行身份盗窃或进行其他恶意行动。

        骚扰和欺诈:通过获取您的IP地址,攻击者可能发送垃圾邮件、进行电话骚扰或进行其他形式的欺诈活动。

        入侵网络设备:通过获取您的IP地址,攻击者可能试图入侵您的路由器或其他网络设备,从而获得对整个网络的控制权。

二、IP地址封装类

       InetAddress类是一个用于表示IP地址的类,InetAddress对象可以视为IP地址。InetAddress类表示互联网协议(IP)地址,可以用于表示IP地址或主机名。开发者可以使用InetAddress类的方法获取IP地址的字符串表示形式、域名、主机名等信息。

        并且InetAddress类的构造方法是私有的,因此我们不能直接使用构造方法创建InetAddress对象。但是,我们可以使用静态方法来获取InetAddress对象。下面来介绍使用InetAddress类的常用方法。

1.常用方法

InetAddress类的常用方法
方法功能描述返回类型
getByName(String host)获取与host相对应的InetAddress对象InetAddress
getHostAddress()获取InetAddress对象所包含的IP地址String
getHostName()获取此IP地址的主机名String
getLocalHost()返回本地主机的InetAddress对象InetAddress
isReachable(int timeout):判断主机是否可达(超时),参数timeout表示超时时间boolean
equals(Object obj)判断两个InetAddress对象是否相等boolean
hashCode()返回对象的哈希码int
toString()返回InetAddress对象的字符串表示string

        InetAddress类的方法会抛出UnknownHostException异常,所以要使用try-catch语句进行异常处理。这个异常在主机不存在或者网络连接错误时发生。

2.实操展示

        (1)获取本地主机和IP地址:

import java.net.*;
public class Luo{ public static void main(String[] args) {try {InetAddress address = InetAddress.getLocalHost();System.out.println("本地主机的名称为:"+address.getHostName());System.out.println("本地主机的IP地址为:"+address.getHostAddress());} catch (Exception e) {e.printStackTrace();}}
}

        导入java.net包。使用getLocalHost()方法,将本地主机的主机名和IP地址都赋值给InetAddress对象(address)。再分别使用getHostName()和getHostAddress()方法,在终端中输出本地主机的主机名和IP地址。

        运行结果:

        由上图所示,显示出了我笔记本的主机名称和IP地址。 

        (2)获取指定网址的计算机名和IP地址:

import java.net.*;
public class Luo{ public static void main(String[] args) {try {InetAddress address[] = InetAddress.getAllByName("www.baidu.com");for(InetAddress in:address){System.out.println("目标网址的主机名称为:"+in.getHostName());System.out.println("目标网址的主机IP地址为:"+in.getHostAddress());System.out.println("--------------------------------------");}} catch (Exception e) {e.printStackTrace();}}
}

        导入java.net包。使用getAllByName()方法获取百度网址的所有主机名和公共IP地址。再通过for循环变量这个InetAddress数组,在终端输出所有查询到的结果。

        运行结果:

        如上图所示,我们获取到了百度网址的两个公共IP地址。

        值得注意的是,无论网址,还是主机IP地址,只要输入到浏览器中,皆可打开对应的网站。

         

 

         这恰恰反证了,网址就是公共IP地址的别名。网址是为了让人读懂,公共IP地址是为了让电脑看懂。


总结

        以上就是IP地址和InetAddress类的简单介绍.关于开发网络程序,IP地址,以及IP地址封装类都是不可避免的话题。如果该文中有错误的地方,或者有读者想要补充的内容,欢迎在评论区中积极留言。

相关文章:

IP地址封装类(InetAddress类)

文章目录 前言一、IP地址是什么?二、IP地址封装类 1.常用方法2.实操展示总结 前言 当我们想要获取到通信对方的IP地址、主机地址等信息时,我们可以使用InetAddress类。InetAddress类在java的net包中。 一、IP地址是什么? IP地址 (Internet Pr…...

数据库设计规范化

在数据库设计中,尤其是在关系型数据库管理系统中,规范化(Normalization)是一种通过减少数据冗余和依赖关系来优化数据库表结构的过程。规范化可以确保数据的完整性和减少数据更新时的问题。规范化的过程通常遵循一系列标准或范式&…...

预约咨询小程序搭建教程,源码获取,从0到1完成开发并部署上线

目录 一、明确需求与规划功能 二、选择开发工具与模板 三、编辑小程序内容 四、发布与运营 五、部分代码展示 制作一个预约咨询小程序,主要可以分为以下几个步骤: 一、明确需求与规划功能 明确需求: 1.确定小程序的服务对象&#xf…...

leetcode217. 存在重复元素,哈希表秒解

leetcode217. 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2&#x…...

QT:QString 支持 UTF-8 编码吗?

在 Qt 中,字符串的处理主要依赖于 QString 类。QString 内部并不是直接使用 UTF-8 编码来存储数据的。相反,QString 使用 Unicode(特别是 UTF-16)来存储文本,以支持多语言环境的国际化应用。这种设计使得 QString 能够…...

我主编的电子技术实验手册(13)——电磁元件之继电器

本专栏是笔者主编教材(图0所示)的电子版,依托简易的元器件和仪表安排了30多个实验,主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】,精心设计的【实验步骤】,全面丰富的【思考习…...

odoo from样式更新

.xodoo_form {.o_form_sheet {padding-bottom: 0 !important;border-style: solid !important;border-color: white;}.o_inner_group {/* 线框的样式 *//*--line-box-border: 1px solid #666;*//*box-shadow: 0 1px 0 #e6e6e6;*/margin: 0;}.grid {display: grid;gap: 0;}.row …...

Oracle(52)分区表有哪些类型?

分区表在Oracle数据库中主要分为以下几种类型: 范围分区(Range Partitioning)列表分区(List Partitioning)哈希分区(Hash Partitioning)组合分区(Composite Partitioning&#xff0…...

大黄蜂能飞的起来吗?

Bumblebee argument 虽然早期的空气动力学证明大黄蜂不能飞行——因为体重太重,翅膀太薄,但大黄蜂并不知道,所以照飞不误。 背景 在20世纪初,‌科学家们通过研究发现,‌大黄蜂的身体与翼展的比例失调,‌按照…...

虹科新品 | PDF记录仪新增蓝牙®接口型号HK-LIBERO CL-Y

新品发布!HK-LIBERO CE / CH / CL产品家族新增蓝牙接口型号HK-LIBERO CL-Y! PDF记录仪系列新增蓝牙接口型号 HK-LIBERO CL-Y HK-LIBERO CE、HK-LIBERO CH和HK-LIBERO CL,虹科ELPRO提供了一系列高品质的蓝牙(BLE)多用途…...

Bytebase 2.22.1 - SQL 编辑器展示更丰富的 Schema 信息

🚀 新功能 SQL 编辑器直接展示表,视图,函数,存储过程等各种 Schema 详情。OpenAI 功能进入社区版(免费),现在您可以通过配置自有 OpenAI key 在 SQL 编辑器中启用自然语言转 SQL 功能。支持在 …...

SQL Server Management Studio的使用

之前在 https://blog.csdn.net/fengbingchun/article/details/140961550 介绍了在Windows10上安装SQL Server 2022 Express和SSMS,这里整理下SSMS的简单使用: SQL Server Management Studio(SSMS)是一种集成环境,提供用于配置、监视和管理SQL…...

Python 爬虫项目实战一:抖音视频下载与网易云音乐下载

一、项目背景 随着互联网的发展,爬虫技术在数据采集和资源获取中发挥着重要作用。本文将以实际案例为例,使用Python语言实现两个热门的爬虫项目:抖音视频文件下载和网易云音乐下载。通过这些实例,读者可以了解如何利用Python编写…...

CAMDS=中国汽车MDS

1、定义和缩写 MSDS(材料安全数据表, Material Safety Data Sheets),德语为SDB(Sicherheitsdatenbltter),是一种传达材料和混合物安全相关信息的工具,包括来自供应链和下游用户相关材料安全报告的信息。它们旨在为专业用户提供使用这些物质和制剂的必要信息和处理建议,…...

【Golang 面试 - 进阶题】每日 3 题(十七)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...

ROS 7上实现私网互通方案

一、背景: 第一个私网现状:连接公域网是由tp-link进行拨号链接使用动态公网ip,内部网段是192.168.1.0/24 第二个私网现状:连接公域网是机房的固定公网ip,内部网段为10.0.0.0/16二、目标 安全的打通192.168.1.0/24和10.0.0.0/16的网络, 使得前者局域网中的机器能够安全访…...

iOS企业签名过程中APP频繁出现闪退是什么原因?

企业签名中,我们总会遇到这样或者那样的问题,要么掉签,要么闪退,那在之前的文章,已不止一次跟大家说了掉签的问题,今天就跟大家详细的聊一聊闪退的问题,希望对大家的推广有所帮助。 其实不管是…...

Unity dots IJobParallelFor并行的数据写入问题

Unity dots IJobParallelFor并行的数据写入问题 [BurstCompile] public struct IncrementJob : IJobParallelFor { [ReadOnly] public NativeArray<int> baseValues; public NativeArray<int> resultValues; public void Execute(int index) {resultValu…...

媒体资讯视频数据采集-yt-dlp-python实际使用-下载视频

对于视频二创等一些业务场景&#xff0c;可能要采集youtube等的相关媒体视频资源&#xff0c;使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择&#xff0c;提供的命令比较丰富&#xff0c;场景比较全面yt-dlp 是一个用 Python 编写的命令行工具&#xff0c;主…...

MySQL 8

MySQL 8.0 相对于 MySQL 5.x(特别是 MySQL 5.7)引入了许多重要的新特性和改进。下面是一些主要的变化和增强功能的概述,包括一些示例来帮助理解这些新功能。 1. JSON 数据类型增强 JSON 类型索引:现在可以为 JSON 列创建索引,从而提高查询性能。JSON 函数扩展:增加了更多…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...

计算机系统结构复习-名词解释2

1.定向&#xff1a;在某条指令产生计算结果之前&#xff0c;其他指令并不真正立即需要该计算结果&#xff0c;如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方&#xff0c;那么就可以避免停顿。 2.多级存储层次&#xff1a;由若干个采用不同实现技术的存储…...