你的位置:首页 > ASP.net教程

[ASP.net教程]apache + tomcat 负载均衡模式下 getLocalAddr() 为null的解决办法

在apache + tomcat 负载均衡模式下,通过request.getLocalAddr()无法获取服务器端的ip地址,返回值为null的问题,查找了下,百度里没有有价值的回答,到官方网站上查找了下,说是:
The AJP protocol only passes the web server host name and port. It does not pass the IP address. Therefore, getLocalName() will return whatever is passed via AJP but getLocalAddr() will always return null.
Whilst getLocalAddr() could be modified to return the IP address Tomcat is listening on for AJP connections, I don’t like the inconsistency that would generate when compared to getLocalName() and getLocalPort().
因为AJP的转换,让java端获取不到服务器的ip地址,可以使用以下办法来获取服务器端的ip地址:

Java代码 复制代码 收藏代码
  1. String currentIp = InetAddress.getByName(request.getServerName()).getHostAddress();  

String currentIp = InetAddress.getByName(request.getServerName()).getHostAddress();

这个一直是获得负载服务器的IP
先通过request.getServerName()获取到访问域名,然后通过InetAddress.getByName(String serverName)解析到ip地址,但格式是 域名/ip 的形式,再通过getHostAddress()获取到ip地址。
实际上如果需要通过域名解析到ip,也可以通过这个函数来获取:

Java代码 复制代码 收藏代码
  1. InetAddress.getByName(域名).getHostAddress()  

InetAddress.getByName(域名).getHostAddress()

。       

 
泰国旅游团报价优惠泰国蜜月旅游行程参考泰国特价旅游多少钱到泰国游费用报价大全泰国自助游攻略2015广东玄武山在哪里?广东陆丰玄武山旅游攻略? 广东陆丰玄武山地址?陆丰玄武山自驾游线路? 陆丰车站到玄武山怎么坐车?陆丰车站到碣石玄武山乘车路线? 陆丰城东到碣石玄武山怎么走?城东到碣石玄武山有多远? 万绿谷漂流时间?河源万绿谷漂流下午几点开始? 河源万绿谷漂流多长时间?万绿谷漂流几点开漂? 河源万绿谷电话?万绿谷空中漂流开漂时间? 河源万绿谷空中漂流好玩吗?万绿谷空中漂流一天玩的过来吗? 红海湾畔不为人知的马宫海滩 乐山黑竹沟6大未解谜团 堪称中国百慕大 天下第一名刹嵩山少林寺的前世今生 价值过亿的石头!中国四大奇石 印度游记 菲律宾芒果干 印度鼻祖美食——咖喱 印度娱乐介绍 ISL9011AIRKCZ-T Datasheet ISL9011AIRKCZ-T Datasheet ISL9011AIRJBZ-T Datasheet ISL9011AIRJBZ-T Datasheet ISL9011AIRJCZ-T Datasheet ISL9011AIRJCZ-T Datasheet 东莞到大同县文庙一龙壁旅游 东莞到大同县文庙一龙壁旅游 东莞到大同县文庙一龙壁旅游 东莞到大同兴国寺五龙壁旅游 东莞到大同兴国寺五龙壁旅游 东莞到大同兴国寺五龙壁旅游 东莞到大同野生动植物游乐观光园旅游 东莞到大同野生动植物游乐观光园旅游 东莞到大同野生动植物游乐观光园旅游