JAVA如何获取服务器ip
一、最简单的方法就是使用InetAddress获取本机ip
InetAddress.getLocalHost().getHostAddress();
public static void main(String[] args) {try {//用 getLocalHost() 方法创建的InetAddress的对象InetAddress address = InetAddress.getLocalHost();System.out.println(address.getHostName());//主机名System.out.println(address.getCanonicalHostName());//主机别名System.out.println(address.getHostAddress());//获取IP地址System.out.println("===============");//用域名创建 InetAddress对象InetAddress address1 = InetAddress.getByName("www.wodexiangce.cn");//获取的是该网站的ip地址,如果我们所有的请求都通过nginx的,所以这里获取到的其实是nginx服务器的IP地址System.out.println(address1.getHostName());//www.wodexiangce.cnSystem.out.println(address1.getCanonicalHostName());//124.237.121.122System.out.println(address1.getHostAddress());//124.237.121.122System.out.println("===============");//用IP地址创建InetAddress对象InetAddress address2 = InetAddress.getByName("220.181.111.188");System.out.println(address2.getHostName());//220.181.111.188System.out.println(address2.getCanonicalHostName());//220.181.111.188System.out.println(address2.getHostAddress());//220.181.111.188System.out.println("===============");//根据主机名返回其可能的所有InetAddress对象InetAddress[] addresses = InetAddress.getAllByName("www.baidu.com");for (InetAddress addr : addresses) {System.out.println(addr);//www.baidu.com/220.181.111.188//www.baidu.com/220.181.112.244}} catch (UnknownHostException e) {e.printStackTrace();}}
二、当服务器有多个网络接口或配置了多个IP地址时
该方法返回的是默认的本地地址,可能是服务器上某个网络接口的IP地址,但不一定是我们期望获取的IP地址。
为了获取正确的IP地址,可以使用其他方法来获取服务器上所有的网络接口,并遍历每个网络接口来获取对应的IP地址。可以使用NetworkInterface类来实现此功能,如下所示:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;public class GetServerIPAddress {public static void main(String[] args) {try {Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();while (interfaces.hasMoreElements()) {NetworkInterface networkInterface = interfaces.nextElement();Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();while (addresses.hasMoreElements()) {InetAddress address = addresses.nextElement();if (!address.isLoopbackAddress() && !address.isLinkLocalAddress() && address.isSiteLocalAddress()) {System.out.println("服务器的IP地址是:" + address.getHostAddress());}}}} catch (SocketException e) {e.printStackTrace();}}
}
上述代码中,我们使用NetworkInterface.getNetworkInterfaces()方法获取所有的网络接口,然后遍历每个网络接口,再通过getInetAddresses()方法获取每个网络接口的IP地址。在获取IP地址时,我们可以根据需求进行过滤,例如排除回环地址、链路本地地址,只选择站点本地地址等。
通过这种方式,我们可以获取到服务器上所有网络接口的IP地址,包括多个IP地址的情况。这样可以确保获取到正确的IP地址。
三、当使用代理服务器时
当使用代理服务器时,InetAddress.getLocalHost()方法返回的是本地主机(即运行该代码的主机)的IP地址,而不是代理服务器的IP地址。这是因为getLocalHost()方法返回的是当前主机的IP地址,而不是代理服务器的IP地址。
在使用代理服务器时,如果想要获取代理服务器的IP地址,可以使用其他方法来实现,例如可以发送一个HTTP请求到一个公共的IP地址查询服务,然后从返回的响应中解析出代理服务器的IP地址。
以下是一个示例代码,演示如何通过发送HTTP请求获取代理服务器的IP地址:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.URL;public class GetProxyIPAddress {public static void main(String[] args) {try {URL url = new URL("http://api.ipify.org");HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.connect();int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));String ipAddress = reader.readLine();System.out.println("代理服务器的IP地址是:" + ipAddress);reader.close();}connection.disconnect();} catch (IOException e) {e.printStackTrace();}}
}
上述代码中,我们发送一个GET请求到http://api.ipify.org,该服务会返回我们的公共IP地址。通过解析响应,我们可以获取到代理服务器的IP地址。请注意,这种方式仅适用于能够访问公共IP地址查询服务的情况。
相关文章:
JAVA如何获取服务器ip
一、最简单的方法就是使用InetAddress获取本机ip InetAddress.getLocalHost().getHostAddress(); public static void main(String[] args) {try {//用 getLocalHost() 方法创建的InetAddress的对象InetAddress address InetAddress.getLocalHost();System.out.println(addr…...
Power BI 傻瓜入门 4. Power BI:亮点
本章内容包含: 在Power BI Desktop上学习诀窍摄入数据使用模型试用Power BI服务 就像评估一个由多种成分组成的蛋糕一样,Power BI要求其用户熟悉商业智能(BI)解决方案中的功能。几乎所有与Power BI交互的用户都是从桌面版开始的…...
网络参考资料搬运(3)
(1) Python: 使用Python打开新的终端(terminal)并执行语句 通过Python 打开各系统(MAC, LINUX, WINDOWS)下的终端 (Terminal) python执行shell脚本的几种方法 自己写Linux命令 用Python写个Linux系统命令 Python 使用sftp传输文件…...
Bias in Emotion Recognition with ChatGPT
本文是LLM系列文章,针对《Bias in Emotion Recognition with ChatGPT》的翻译。 chatGPT在情绪识别中的偏差 摘要1 引言2 方法3 结果4 讨论5 结论 摘要 本技术报告探讨了ChatGPT从文本中识别情绪的能力,这可以作为交互式聊天机器人、数据注释和心理健康…...
【PACS系统源码】与医院HIS系统双向数据交换,实现医学影像集成与影像后处理功能
医院医学影像PACS系统源码,集成三维影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大,代码完整。 PACS系统与医院HIS实现双向数据交换,…...
深度学习中常用的激活函数有sigmoid、tanh、ReLU、LeakyReLU、PReLU、GELU等。
深度学习中常用的激活函数 1. Sigmoid函数2. Tanh函数3. ReLU函数4. LeakyReLU函数5. PReLU函数6. ELU函数:7. GELU函数: 深度学习中常用的激活函数有sigmoid、tanh、ReLU、LeakyReLU、PReLU等。 1. Sigmoid函数 Sigmoid函数公式为 f ( x ) 1 1 e −…...
mysql同时使用order by排序和limit分页数据重复问题
目录 场景再现: 解决方案: 问题分析: mysql官方描述: 场景再现: 最近排查数据时发现使用order by及limit分页时会出现不同页数数据重复问题及有的数据分页不会显示,但是按条件搜索就可以搜索出来。 解决方案&#x…...
英语——歌诀篇——歌诀记忆法
介词用法速记歌 年月季前要用in, 日子前面却不行。 遇到几号要用on, 上午下午又用in。 要说某时上下午, 用on换in才可行。 午夜黄昏和黎明, 要用at不用in。 差儿分到几点, 写个“to”在中间。 若是几点过几分…...
打破运维疆界:异构复杂网络环境的集中监控和管理
在当今多元化的IT环境中,异构环境的管理成为了企业IT团队的一大挑战。如何在多种技术架构、多样的应用环境中实现高效的运维管理,是众多企业正在面临的问题。在本文中,我们将探讨监控易在异构环境中的运维监控表现,并通过实际案例…...
ubuntu安装debian包的命令dpkg和apt的详解
dpkg是Debian Packager的缩写 官方文档https://manpages.ubuntu.com/manpages/jammy/en/man1/dpkg.1.html ubuntu的dpkg命令类似centos的rpm命令,dpkg主要用于对已下载到本地和已安装的.deb软件包进行管理比如安装、构建、删除。dpkg不能自动下载和安装.deb软件包也…...
【暴力剪枝】CF1708D
https://codeforces.com/contest/1708/problem/D 题意 思路 这样的操作下,数列减的速度是非常快的,也就是说,易出现很多的0,0的操作没啥意义,所以我们要找到第一个 >0 的数对其后的序列进行排序,就能大…...
代码格式化的使用
前言 本文主要介绍了代码格式化,以及各个平台如何使用快捷键进行代码格式化,如有错误之处,欢迎在评论区交流讨论~ 代码格式化 代码格式化是一种编程实践,它涉及调整源代码的外观,以提高可读性和一致性。 这包括调整缩进、空格、换行符和括号等元素的使…...
【Unity地编】地形系统搭建入门详解
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:UI_…...
文件的物理结构(连续分配,链接分配,索引分配)
1.文件块,磁盘块 类似于内存分页,磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”。 很多操作系统中,磁盘块的大小与内存块、页面的大小相同。 内存与磁盘之间的数据交换(即读/写操作、磁盘I/O)都是以“块”为…...
vue2 解密图片地址(url)-使用blob文件-打开png格式图片
一、背景 开发中需要对加密文件进行解码,如图片等静态资源。 根据后端给到的url地址,返回的是图片文件,但是乱码的,需要解码成png图片进行展示 二、请求接口 将后端返回的文件转为文件流,创建Blob对象来存储二进制…...
cuda PyTorch
1. GPU对应的CUDA版本 nvidia-smi CUDA Version: 12.2 GPU diver 大于cuda toolkit, pytorch 版本根据cuda toolkit 2. 查看nvcc的版本(即cuda toolkit 版本) nvcc --version Cuda compilation tools, release 12.2, V12.2.91 Build cud…...
vue视频直接播放rtsp流;vue视频延迟问题解决;webRTC占cpu太大卡死问题解决;解决webRTC播放卡花屏问题:
播放多个视频 <div class"video-box"><div class"video"><iframe style"width:100%;height:100%;" name"ddddd" id"iframes" scrolling"auto" :src"videoLeftUrl"></iframe>&l…...
leetcode_2316 统计无向图中无法互相到达点对数
1. 题意 给定一个无向图, 统计无法互相到达的点对数。 统计无法互相到达点对数 2. 题解 其实还是求联通块,求联通块可以使用搜索进行标记。还要求得联通块中元素的大小。 联通块其实也就是不相交集合,也可以用并查集来做。 每求得一个联…...
数据结构知识点总结
一、常见的数据结构 数组,栈,队列,链表,散列表,二叉树,堆,跳表,图,树。 1. 数组: 数组的元素在内存中存储是连续存放的,占有连续的存储单元&am…...
【经济研究】数字技术创新与中国企业高质量发展—来自企业数字专利的证据
数据简介:在当前数字经济时代,数字技术创新已成为驱动中国经济发展的核心要素,中国经济由高速增长转向高质量发展的“新常态”发展阶段,开启了革新经济增长方式,优化产业结构,寻找新的经济增长动能关键期。…...
机器学习数据集最佳实践:从探索到部署全流程指南
1. 项目概述:标准机器学习数据集的最佳实践指南在机器学习领域,我们常常会遇到一个有趣的现象:同样的算法在不同数据集上表现天差地别。这就像一位厨师用相同的烹饪方法处理不同食材——土豆和牛排需要的火候、时间完全不同。经过多年实战&am…...
【Docker低代码配置黄金标准】:基于17家头部企业落地数据验证的8项必配参数清单
第一章:Docker低代码配置的演进逻辑与行业共识Docker 本身并非低代码平台,但其声明式配置范式(尤其是 docker-compose.yml 和 Dockerfile)天然契合低代码的核心思想——通过可读性强、结构化、可复用的文本描述替代重复性手工操作…...
nli-MiniLM2-L6-H768部署案例:轻量级NLI模型如何替代BERT-large做语义精排
nli-MiniLM2-L6-H768部署案例:轻量级NLI模型如何替代BERT-large做语义精排 1. 模型概述 nli-MiniLM2-L6-H768 是一个专为自然语言推理(NLI)任务优化的轻量级模型,其核心能力是判断两段文本之间的语义关系。与传统的BERT-large等…...
5G NR网络优化实战:手把手教你配置CSI报告,提升下行速率(含PUCCH/PUSCH选择指南)
5G NR网络优化实战:CSI报告配置与下行速率提升全解析 在5G网络优化工作中,CSI(Channel State Information)报告的合理配置直接影响着下行速率的性能表现。作为网络优化工程师,我们需要深入理解CSI报告的配置机制&#…...
STM32F103C8T6驱动无源蜂鸣器播放《两只老虎》完整教程(附源码)
STM32F103C8T6驱动无源蜂鸣器播放《两只老虎》完整教程(附源码) 蜂鸣器作为嵌入式开发中最基础的外设之一,常被用于系统报警、状态提示等场景。但你是否想过,通过精确控制PWM频率和节奏,可以让这个简单的元件演奏出熟悉…...
治愈不内卷!星露谷物语v1.6.15,承包你的所有温柔时光
如果你被快节奏的生活压得喘不过气,被内耗裹挟得身心俱疲,那一定要试试《星露谷物语》v1.6.15版本——这款Steam好评率98%的治愈神作,用一方小小农场,给你一个逃离喧嚣的精神避风港。 今天,就有免费的pc资源࿱…...
智能体角色设定基础:专家、助手、执行者模式
文章目录前言一、2026年AI智能体落地现状:角色化成为刚需1.1 通用大模型的天然短板1.2 角色设定:解决智能体失控的核心方案二、智能体三大核心角色模式深度解析2.1 专家模式:垂直领域的专业决策者2.1.1 核心定位与能力边界2.1.2 技术实现逻辑…...
Maplsemi美浦森原厂原装一级代理分错经销
Maplsemi美浦森原厂原装一级代理分错经销 序号 品牌 元件类别 型号 描述 包装 数量 1 MAPLESEMI MOSFET SLD20N06T TO-252 2500 2,500 2 MAPLESEMI MOSFET SLD130N04T TO-252 2500 5,000(https://i-blog.csdnimg.cn/direct/3f0025dea646479b87ba0c15005171b7.png)(https://i-bl…...
用PyTorch/TensorFlow动手画一画:GAN训练中Loss曲线的‘健康’与‘病态’长啥样?
GAN训练诊断手册:从Loss曲线中识别健康与病态信号 在生成对抗网络(GAN)的训练过程中,损失曲线就像心电图一样,能够直观反映模型的生命体征。许多开发者都有过这样的经历:代码没有报错,训练也在持续进行,但生…...
Hermes 的五种多 Agent 协作模式
单个 AI Agent 的能力有上限。当任务复杂到需要并行处理、多角色分工、或跨领域协作时,多 Agent 协作就成了必然选择。 本文系统梳理 Hermes 支持的五种多 Agent 模式,对比不同协作架构的优劣,并给出各场景下的实践建议。 一、Agent 分工模式…...
