java获取真实ip的方法

news2024/11/22 12:07:30

 

在网络中,如果不想被人监听,那么就需要获取 IP地址了,在电脑中我们可以使用到 ip地址获取工具,那么如何在 Java中获取真实的 IP地址呢? 1、首先我们需要先准备一台电脑,然后将电脑进行联网; 2、然后在电脑上运行 iptables,进入到安装目录; 3、双击打开安装包,会出现以下画面; 4、然后点击【开始】-【搜索】,在搜索框中输入 ping192.168.1.111-t,点击【回车】按钮; 5、出现如下界面后,点击【+】按钮; 6、接着出现如下界面后,输入 ping192.168.1.111-t-d-t-a (注意:a需要大于2的倍数); 7、最后点击【运行】按钮即可获取到 IP地址了; 8、这个方法同样也可以用来获取其他 IP地址; 9、下面我们来介绍另一种获取真实 IP地址的方法。我们需要准备一台电脑,然后在电脑上运行 iptables。 10、打开 iptables软件后,在首页就会显示当前的 ip地址了;

  • 1、打开 iptables软件后,点击【开始】-【搜索】;

    11、找到你想要获取的 ip地址后,点击【回车】按钮; 12、在弹出的窗口中,需要注意的是, ip地址不能小于1,否则会报错,或者出现一些其他的错误信息; 13、接着就可以开始获取了。我们首先需要在电脑上下载 iptables,然后双击打开安装包; 14、当程序已经开始运行时,会弹出一个窗口,在窗口中输入 iptables软件名称,然后点击【回车】按钮; 15、接下来就会出现一些小窗口,可以在这些小窗口中看到当前电脑的 ip地址了; 17、接下来就会出现以下界面了: 18、在这里我们可以看到电脑的 IP地址了,这时候我们就可以对电脑进行一些操作了: 19、首先打开 IE浏览器,然后输入网址192.168.1.111后点击【确定】按钮即可;

  • 2、出现如下界面后,点击【回车】;

    以上就是获取真实 IP地址的两种方法了,在电脑上使用 iptables软件获取 IP地址,相对来说是比较方便的,如果在网络中使用此方法,那么就会面临被人监听的风险,那么如何避免呢? 1、如果想要避免被人监听,那么可以选择不联网。这样就可以避免有人对你进行监听了; 2、如果想要连接到网络上,那么就需要将自己的网络进行设置,在网络上设置自己的 IP地址,然后使用 iptables获取到自己的 IP地址后; 3、如果不想被人监听,那么就需要将自己的网络进行隐藏起来,将自己的 IP地址进行隐藏; 4、以上就是获取 IP地址的两种方法了。希望能够帮到大家。

  • 3、然后就会出现如下界面,输入 ping192.168.1.111-t-d-t-a (注意:a需要大于2的倍数);

    11、接着输入 systemd:192.168.1.111; 13、这种方法同样也可以用来获取其他的 IP地址,不过我们需要知道 IP地址的下一位是1还是2; 14、以上两种方法就是获取 IP地址的方法,当然了,如果你想要获取真实的 IP地址,那么还可以使用 ip代理技术,也就是在别人的电脑上设置一个代理服务器,让其为自己的电脑服务,这样就可以获取到真实的 IP地址了。至于如何设置代理服务器,大家可以通过 iptables软件中的设置选项进行查看。 15、那么今天关于获取真实 IP地址的方法就介绍到这里了,大家如果还有其他的问题,可以在下方留言。最后,如果大家觉得这篇文章有用,请多多转发、点赞、收藏和关注哦!谢谢大家! 更多干货尽在学习资料包下载:

  • 4、最后点击【运行】按钮即可获取到真实的 ip地址了;

    其实以上就是 java中获取真实 IP地址的方法,这里我们还可以使用到路由网关工具,这样就可以获取到真实的 IP地址了。 1、首先我们需要打开路由网关工具,然后点击【添加网络节点】; 2、接着在弹出的界面中选择要添加的网络节点; 5、在弹出的窗口中选择好路由名称和网关地址,最后点击【确定】按钮; 8、接着我们就可以看到路由表中对应 IP地址信息了,这样我们就可以使用到路由网关工具了。

  • 5、同样也可以用来获取其他 IP地址;

    11、然后点击【新建】-【文本文档】,输入【iptables. exe】,然后点击【确定】按钮; 13、通过这两种方法,我们都可以获取到当前的 IP地址,那么如果我们不想被人监听,那么我们应该如何防止呢? 1、首先在电脑上安装防火墙,然后开启防火墙; 2、接着在防火墙中将网络地址过滤掉,这样就可以阻止非授权访问了; 3、然后在 Java中使用 iptables获取到 IP地址; 4、最后将获取到的 IP地址添加到防火墙中即可。 上面就是通过 Java中获取 IP地址的方法了,那么你学会了吗?其实获取 ip地址并不难,只要我们掌握了上面两种方法即可,但是也不能掉以轻心,毕竟现在网络安全问题还是比较严峻的。

  • 6、这个方法同样也可以用来获取其他软件中的 IP地址;

    通过上面两个例子,我们可以看到在 Java中也是可以获取到 IP地址的。但是在获取 IP地址的过程中,我们需要注意以下几点: 1、 IP地址是一个网络地址,它只能由计算机所在的网络中的主机来访问。 2、一个网络地址只能被一台主机所访问,如果有多台主机要访问一个网络地址,那么需要将其 IP地址进行映射,这是访问不了的。 4、 HTTP请求是不会将自己的 IP地址直接返回给主机的,只有当请求发送到目标主机后才会返回。

  • 7、我们也可以使用以上的方法进行 java虚拟机 ip地址获取。

    下面我们再来介绍一个方法,这个方法同样也是在电脑上进行运行,然后使用 iptables获取真实的 IP地址。 然后我们点击【安装】,进入到安装目录。 16、接着我们点击【新建】按钮,然后在弹出的窗口中输入【iptables】,进入到下一步。 17、接着我们点击【下一步】按钮,继续下一步的操作; 18、然后在弹出的窗口中选择【创建虚拟机】选项。在下方找到【使用本机的 Java虚拟机(JVM)】选项; 19、接着我们将在电脑上运行 iptables软件,然后找到 Java虚拟机安装目录下的 javac. exe程序文件夹; 20、接着我们将此文件夹复制到电脑上,然后将其安装到电脑中,最后点击【完成】即可。 以上就是两种获取真实 IP地址的方法了,这两种方法都可以用来获取真实的 IP地址了

以下是常用的Java获取真实IP地址的代码:


1. 使用HttpServletRequest对象获取IP地址:
```java
public static String getIpAddress(HttpServletRequest request) {
String ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}
return ipAddress;
}
```
2. 使用ServletRequestAttributes对象获取IP地址:
```java
public static String getIpAddress() {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
String ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}
return ipAddress;
}
```
3. 使用InetAddress对象获取IP地址:
```java
public static String getIpAddress() {
String ipAddress = "";
try {
InetAddress inetAddress = InetAddress.getLocalHost();
ipAddress = inetAddress.getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return ipAddress;
}
```
以上是常用的Java获取真实IP地址的代码,可以根据实际情况选择使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT带你一起了解C语言中的fseek()

fseek函数用于将文件指针移动到指定位置。它的原型如下: c int fseek(FILE *stream, long offset, int whence); 其中,stream是文件指针,offset是偏移量,whence是起始位置。 偏移量offset可以是正数、负数或零。 如果是正数&a…

Java --- springboot2数据响应与内容协商

目录 一、数据响应与内容协商 1.1、响应json 1.1.1、返回值解析器 1.1.2、springMVC支持的返回值类型 1.1.3、HttpMessageConverter原理 1.2、内容协商 1.2.1、引入依赖 1.2.2、 postman分别测试返回json和xml 1.2.3、开启浏览器参数方式内容协商功能 1.3、自定义 Message…

持续测试:DevOps时代质量保证的关键

在 DevOps 时代,持续测试已成为质量保证的一个重要方面。近年来,软件开发方法论发生了快速转变。随着 DevOps 的出现,已经发生了向自动化和持续集成与交付 (CI/CD) 的重大转变。传统的质量保证方法已不足以满足现代软件开发实践的需求。持续测…

Java——二叉树的深度

题目链接 牛客网在线oj题——二叉树的深度 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。 数据范围&am…

记一次产线打印json导致的redis连接超时

服务在中午十一点上线后,服务每分钟发出三到四次redis连接超时告警。错误信息为: Dial err:dial tcp: lookup xxxxx: i/o timeout 排查过程 先是检查redis机器的情况,redis写入并发数较大,缓存中保留了一小时大概400w条数据。red…

java学习之第十章作业

目录 第一题 第二题 第三题 第四题 第五题 第六题 代码的问题点 第七题 第八题 第一题 package homework;public class HomeWork01 {public static void main(String[] args) {Car c new Car();//创建新对象,没有实参Car c1 new Car(100);//1.创建一个新的…

Windows11开启远程桌面和修改远程端口

该示例适用于大部分的Windows平台,示例基于Windows 11。操作系统:Windows 11 专业版。远程桌面默认使用TCP协议,默认端口为3389,修改后为13389。 一、开启远程桌面 控制面板-->系统与安全-->系统-->允许远程访问 二、修…

牛客网_华为机试题_HJ23 删除字符串中出现次数最少的字符

写在前面: 题目链接:牛客网_华为机试题_HJ23 删除字符串中出现次数最少的字符 编程语言:C 难易程度:简单 一、题目描述 描述 实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数…

09 虚拟机配置-虚拟机描述

文章目录 09 虚拟机配置-虚拟机描述9.1 概述9.2 元素介绍9.3 配置示例 09 虚拟机配置-虚拟机描述 9.1 概述 本节介绍虚拟机domain根元素和虚拟机名称的配置。 9.2 元素介绍 domain:虚拟机XML配置文件的根元素,用于配置运行此虚拟机的hypervisor的类型…

英语中主语从句的概念及其用法,例句(不断更新)

主语从句的原理 主语从句是一种充当整个句子主语的从句,主语从句构成的句子,是要以引导词开头的。它可以用名词性从属连词、关系代词或关系副词引导。主语从句通常位于谓语动词之前,用于表示动作、状态或事件的主体。 以下是一些常用的引导主…

【Python习题集2】控制语句练习

控制语句 一、实验内容二、实验总结 一、实验内容 1.从键盘接收整数的一百分制成绩(0~100),要求输出其对应的成绩等级A-E。其中,90分(包含)以上为A,80~89(均包含)分为B,70~79&#…

【Unity编辑器】拓展Hierarchy视图

目录 1、拓展菜单 2、拓展布局 3、重写菜单 1、拓展菜单 在Hierarchy视图中点击Create按钮,弹出的菜单My Create->Cube就是自定义拓展菜单 using UnityEngine; using UnityEditor;public class S2_拓展菜单 : MonoBehaviour {[MenuItem("GameObject/My …

Leetcode268. 丢失的数字

Every day a leetcode 题目来源&#xff1a;268. 丢失的数字 解法1&#xff1a;排序 代码&#xff1a; /** lc appleetcode.cn id268 langcpp** [268] 丢失的数字*/// lc codestart class Solution { public:int missingNumber(vector<int> &nums){int n nums.s…

分数傅里叶变换、小波变换和自适应神经网络

与普通的傅立叶变换&#xff0c;即 1 阶的分数阶傅立叶变换不同&#xff0c;分数阶傅立叶变换&#xff08;p ≠ 1&#xff09;提取的特征同时结合了原始图像的空间和频率特性。 分数傅里叶变换图像是介于原始图像和全傅里叶变换图像之间的东西。 Vander Lugt 相关器可以根据傅…

Playwright之初体验

参考文件 官方文档&#xff1a;https://playwright.dev/docs/intro GitHub链接&#xff1a;https://github.com/microsoft/playwright-python Playwright简介 Playwright Test是专门为满足端到端测试的需求而创建的。Playwright支持所有现代搜索引擎&#xff0c;包括Chrome、…

linux基础简介(一)

1.Linux内核 ​ Linux 系统从应用角度来看&#xff0c;分为内核空间和用户空间两个部分。内核空间是 Linux 操作系统的主要部分&#xff0c;但是仅有内核的操作系统是不能完成用户任务的。丰富并且功能强大的应用程序包是一个操作系统成功的必要件。 ​ Linux 的内核主要由 5…

Android Framework基础面试篇~

在Android应用开发面试中&#xff0c;针对Framework的问题是常被考察的。以下是一些常见的Framework金典面试题目及其详解&#xff1a; 1. 什么是Android应用生命周期&#xff1f;你能描述一下它包含哪几个阶段吗&#xff1f; Android应用生命周期指的是应用从启动到关闭的整…

[oeasy]python0048_注释_comment_设置默认编码格式

注释Comment 回忆上次内容 使用了版本控制 git 制作备份进行回滚 尝试了 嵌套的控制结构 层层 控制 不过 除非 到不得以尽量不要 太多层次的嵌套 这样 从顶到底含义 明确而且 还扁平 扁平 也能 含义明确 还可以 做点什么&#xff1f; 让程序含义 更加明确呢&#xff1f;&…

数据结构学习分享之栈和队列详解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:数据结构学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你了解更多数据结构的知识   &#x1f51d;&#x1f51d; 数据结构第五课 1. 前言&a…

文心一言 VS chatgpt (14)-- 算法导论3.2 2~3题

二、证明等式&#xff08;3.16&#xff09;&#xff1a;a ^ {\log_b c} c ^ {\log_b a}。 文心一言&#xff1a; chatgpt&#xff1a; 我们需要证明的等式为&#xff1a; a log ⁡ b c c log ⁡ b a a^{\log_b c} c^{\log_b a} alogb​cclogb​a。 首先&#xff0c;将 l…