当前位置: 首页 > 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中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...