怎么获取客户端真实的ip为

jackfaye 发布于 01/24 20:24
阅读 1K+
收藏 1

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

请教一下,获取客户端真实ip为什么是这个逻辑顺序,首先获取x-forward-ip 而不是直接Proxy-Client-IP 

加载中
0
酷酷的就
酷酷的就

主要是看web前面是否还有nginx等代理了,  你可以根据你的实际情况改这个顺序的

0
sprouting
sprouting

靠这种代码获取真实IP还是有限制的,比如你前方做了代理,还要相关的参数也传递进来,否则可能会被代理改写

0
阳少
阳少

主要还是要看入口,对于真实IP,像这样通过hearder去取是可以伪造的

0
ducat7
ducat7

网络,是由DNS构成

0
湖水没了
湖水没了

你这是一段危险的代码 客户端可以轻易欺骗你 给你传个头信息 你就得到假IP了

小塔罗
小塔罗
回复 @jackfaye : 使用x-forward-ip是最安全的就算用户给你传个假Header头你只需要再nginx反向代理的时候再把这个Header头设置成客户端的IP就行了
湖水没了
湖水没了
回复 @jackfaye : 用 request.getRemoteAddr() 获取ip,当前面有反向代理时增加tomcat配置 <Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto"/> 让tomcat将真实ip放在remoteAddr里面
jackfaye
jackfaye
那应该怎么写
0
f
freezingsky

网络接入基于SLB进入,然后一般会有各种内部的nginx代理。 最好的方式,就是在源头,把用户的真实IP,以特定的kv约定后好,一路传递,再由业务端拿出来就好了。

0
邓草
邓草
获取真实IP是一个相对概念,如果客户端有意欺骗,还是有局限性的
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部