日期:2014-05-17  浏览次数:20669 次

请问如何获得服务器ip
request.getRemoteAddr()

好像不好用啊,上网查说是代理什么的

我现在就想取得服务器ip 然后根据ip判断是连接的什么环境
比如ip是130.120.12.12 的时候 是开发环境 
请问怎么取IP呢

------解决方案--------------------
我用的一个获取ip的笨方法就是访问获取ip的网页,例如ip138,然后再网页源码中截取自身的ip。
------解决方案--------------------
那个API是根据host里配置的计算机名来取IP的,实际上如果你要绑定服务的话,是不用取IP的,直接绑定端口就好了,操作系统会把你的服务绑定到服务器上所有对外的网卡上
------解决方案--------------------
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null 
------解决方案--------------------
 ip.length() == 0 
------解决方案--------------------
 "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null 
------解决方案--------------------
 ip.length() == 0 
------解决方案--------------------
 "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null 
------解决方案--------------------
 ip.length() == 0 
------解决方案--------------------
 "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (ip.equals("0:0:0:0:0:0:0:1")) {
ip = "localhost";
}
return ip;
}


获取ip是这样获取的
------解决方案--------------------
可以参考一下我的博客
http://ygydaiaq-gmail-com.iteye.com/blog/1985820
------解决方案--------------------
用request获取浏览器上ip,这是个本方法
------解决方案--------------------
remoteaddr是访问浏览器所在的ip,不是服务器端ip。先说说你取服务器ip要做什么呢
------解决方案--------------------
引用:
Quote: 引用:

public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null 
------解决方案--------------------
 ip.length() == 0 
------解决方案--------------------
 "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null 
------解决方案--------------------
 ip.length() == 0 
------解决方案--------------------
 "unknown".equalsIgnoreCase(ip