易截截图软件、单文件、免安装、纯绿色、仅160KB

使用Java获取IP地址实例

使用Java获取IP地址实例
文章分类:Java编程
现在在从事的工作出现了一个问题,偶尔会出现取不到ip的情况,搜索了一下,原来如下文所说
转自:http://developer.51cto.com/art/200906/130491.htm
使用Java获取IP地址实例
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问 http://www.5q520.cn /index.jsp/ 时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问http://192.168.1.110:2046 /index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过 request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出Java获取IP地址真实地址的方法一:
Java代码
public String getRemortIP(HttpServletRequest request) {        
  if (request.getHeader("x-forwarded-for") == null) {        
   return request.getRemoteAddr();        
  }        
  return request.getHeader("x-forwarded-for");        
 }    
可是当我访问http://www.5a520.cn /index.jsp/ 时,返回的IP地址始终是unknown,也并不是如上所示的127.0.0.1 或 192.168.1.110了,而我访问 http://192.168.1.110:2046/index.jsp 时,则能返回客户端的真实IP地址,写了个方法去验证。原因出在了Squid上。squid.conf 的配制文件 forwarded_for 项默认是为on,如果 forwarded_for 设成了 off  则:X-Forwarded-For: unknown
于是可得出获得Java获取IP地址的方法二:
Java代码
public String getIpAddr(HttpServletReques


相关文档:

Java中集合容器类List和Set的用法

List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1  List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......

java Pattern使用

    public static boolean isCheckN(String pInput) {
        String regEx = "^[0-9]+$";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(pInput);
  ......

java 自己做的对XML文件的读写操作

XML文件实例:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource auth="Container" maxActive="20" name="sss" password="123"
type="javax.sql.DataSource" />
<Resource auth="Container" ......

传智播客Java培训 JDBC连接池

     今天从同学们那里搞了两个翻墙软件,一个是无界,一个是自由门,刚听到翻墙软件大家一定很迷糊吧,我也是刚知道有这种东西,听说用这种软件可以访问一些被国家禁止访问的网站,确切的说就是一种代理机制,大家不要多想,我弄这个东西没别的目的,动机是很单纯的,就是想看一看全球最大的视频 ......

Java 与 富士康

复习一下java代码,代码问题很多请高手不吝赐教。帮助重构。
public static void main(String[] args){
    int employeeCount = 420000;  //员工总数 
    Employee[] 所有职工  = getAllEmployee();
    for((i=0;i<=employeeCount ;i++) {
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号