首页新闻找找看学习计划

Java获取真实IP,并且能识别客户端伪造IP,另:花生壳部署的removeAddr为何总是局域网IP

0
[待解决问题]

为了测试Java获取客户端IP,我用花生壳部穿透内网,部署了一个系统,并尝试着用域名访问系统。结果request.getRemoteAddr()获取的IP总是本机的局域网IP,request.getLocalAddr()也总是本机的局域网IP,请问这是为什么!

另外,从请求头X-Forwarded-For获取的地址,是可以伪造的,而我的系统,将来肯定会用上反向代理,这个问题要怎么解决,如何防止客户端伪造IP地址?

zhengjinfeng的主页 zhengjinfeng | 初学一级 | 园豆:90
提问于:2017-09-18 09:41
< >
分享
所有回答(3)
0

不懂java,但是你想真正解析到用户真实ip,不可能

北方姆Q | 园豆:856 (小虾三级) | 2017-09-18 11:48

请问是那种不可能,是花生壳穿透内网,还是反向代理不可能获取真实IP?

支持(0) 反对(0) zhengjinfeng | 园豆:90 (初学一级) | 2017-09-18 19:49

@zhengjinfeng: 只要用户挂了代理,你就只能拿到代理的ip,如果客户端刻意伪造ip,你是无法拿到他的真实ip的

支持(0) 反对(0) 北方姆Q | 园豆:856 (小虾三级) | 2017-09-18 21:50
0

IP地址没有任何意义吧,这东西是一层加一层,要放在整个网络框架里面才有用。

真想识别客户端,取mac吧,mac地址才是真正的网络地址。

ensleep | 园豆:1391 (小虾三级) | 2017-09-19 09:46

客户端的mac取不到吧?

支持(0) 反对(0) zhengjinfeng | 园豆:90 (初学一级) | 2017-09-19 10:03
0

真实IP?

用户通过路由器上网,他的本机IP就是192.168.。。。。而路由器的出口IP还要看网络拓扑情况。。。。所以,你想获取的应该是公网出口IP。

而公网的出口IP可能因为网络二级代理商的问题导致很多用户公用一个出口IP。。。

所以,不是太清楚你要获取这个非常不稳定的IP用来做甚?

依然菜刀 | 园豆:249 (菜鸟二级) | 2017-11-13 16:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册