来源:https://www.cnblogs.com/shuilangyizu/p/7919269.html
java中获取当前服务器地址主要使用到InetAddress这个类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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.cn System.out.println(address1.getCanonicalHostName()); //124.237.121.122 System.out.println(address1.getHostAddress()); //124.237.121.122 System.out.println( "===============" ); //用IP地址创建InetAddress对象 InetAddress address2 = InetAddress.getByName( "220.181.111.188" ); System.out.println(address2.getHostName()); //220.181.111.188 System.out.println(address2.getCanonicalHostName()); //220.181.111.188 System.out.println(address2.getHostAddress()); //220.181.111.188 System.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(); } } |
如果使用了反向代理,这种获取方式显然是不准确的,我们采用的方法是新建一个java类,里面配的是当前服务器的IP地址(也就是说这个类在每个节点服务器上部署的是不同的),程序里用的话直接获取这个工具类就可以了,虽然方法有点笨,但是解决问题了。
public class CommonServerIP { /** * 这个类主要是保存常用的一些固定的服务器IP */ public static String CURRENT_SERVER="124.237.121.46";//当前服务器的ip地址 }
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2017-07-12 Android之NFC
2014-07-12 利用MyEclipse自动创建PO类、hbm文件(映射文件)、DAO