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.常用方法
| 方法 | 功能描述 | 返回类型 |
| 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.确定小程序的服务对象…...
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࿰…...
大黄蜂能飞的起来吗?
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实际使用-下载视频
对于视频二创等一些业务场景,可能要采集youtube等的相关媒体视频资源,使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择,提供的命令比较丰富,场景比较全面yt-dlp 是一个用 Python 编写的命令行工具,主…...
MySQL 8
MySQL 8.0 相对于 MySQL 5.x(特别是 MySQL 5.7)引入了许多重要的新特性和改进。下面是一些主要的变化和增强功能的概述,包括一些示例来帮助理解这些新功能。 1. JSON 数据类型增强 JSON 类型索引:现在可以为 JSON 列创建索引,从而提高查询性能。JSON 函数扩展:增加了更多…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
