oneym 发表于 2015-6-17 00:13:53

java中怎么获取到访客的真实IP

java服务端中使用socket或者http真么获取到访客的真实ip,现在获取到的都是127.0.0.1,在做判断时需要真实ip。我怎么做才能获得?

nat123jia 发表于 2015-6-17 09:17:01

可参考此帖获取真实IP

http://www.natbbs.com/forum.php?mod=viewthread&tid=6275

iknow 发表于 2015-6-17 09:30:28

对于http协议参考此帖获取真实IP
http://www.nat123.com/Pages_8_120.jsp

对于TCP协议,开发者请在nat123客户端,右键你的映射=>本地设置=>勾选上选项 “建立连接时以UTF8编码向服务器发送访问者的IP:端口”
然后在接收到第一个数据包时读取访客IP即可
:loveliness:

oneym 发表于 2015-6-17 10:34:12

@nat123jia @iknow 感谢上面的两位大哥的悉心解答,问题解决了,下面贴出解决方案

oneym 发表于 2015-6-17 10:37:51

java
首先,开发者请在nat123客户端,右键你的映射=>本地设置=>勾选上选项 “建立连接时以UTF8编码向服务器发送访问者的IP:端口”
然后,http中,可以使用request.getHeader("HTTP_X_FORWARDED_FOR")来获取真实ip地址,socket中ip是包含在消息中的

nat123jia 发表于 2015-6-17 10:55:14

oneym 发表于 2015-6-17 10:37
java
首先,开发者请在nat123客户端,右键你的映射=>本地设置=>勾选上选项 “建立连接时以UTF8编码向服务 ...

如果是http协议的话是不用设置 勾选上选项 “建立连接时以UTF8编码向服务器发送访问者的IP:端口”,此项仅用于tcp或者udp协议..

http协议直接使用request.getHeader("HTTP_X_FORWARDED_FOR")读取真实ip即可 ,http协议如果勾选了这项部分web服务器可能会报404

oneym 发表于 2015-6-17 11:03:10

nat123jia 发表于 2015-6-17 10:55
如果是http协议的话是不用设置 勾选上选项 “建立连接时以UTF8编码向服务器发送访问者的IP:端口”,此项 ...

不好意思,我没有实验http,我只做了socket方式,谢谢了。:loveliness:

czffg 发表于 2015-6-17 11:41:34

不知道

czffg 发表于 2015-6-17 11:41:49

行不行

czffg 发表于 2015-6-18 10:34:43

不知道
页: [1] 2
查看完整版本: java中怎么获取到访客的真实IP