㈠ 如何获取客户端IP,WEB服务器IP
客户端 IP 地址是通过 CGI 变量 REMOTE_ADDR 得到的,这个是 HTTP 服务器负责提供。 HTTP 服务器和客户端浏览器之间存在 socket 连接,socket 连接信息包含了另一侧的 IP 地址和端口。
当然,最终用户如果是通过代理服务器访问怎么办呢?目前主流的 HTTP 代理服务器都支持在 HTTP 报头添加 X-Forwarded-For 信息,这可以是一个列表,如果所有的代理
㈡ 服务器如何获取客户端的IP地址,并与客户端建立TCP连接
客户端的IP自动获取,关键要看客户端的IP是由谁来分配的,如果都是有ISP提供的那么服务器利用IP去连接客户端就不太可能。可以尝试用下面两种思路解决:
1、能否让客户机主动连接服务器。
2、使用动态DNS。让每个客户机都申请一个动态域名,无论它的IP怎样变,当改变以后都会到DNS服务器进行注册,然后服务器使用主机的名字访问客户端。
㈢ 如何获取客户端ip
取客户端的IP地址的方法通常是request.getRemoteAddr(),这种方法在大部分情况下都是有效的。如果使用了反向代理软件(Apache,Squid等),用request.getRemoteAddr()方法获取的IP地址实际上是代理服务器的地址。
不过大部分HTTP代理或负载均衡服务器会将X-Forwarded-For作为存放客户端最原始的IP地址的HTTP请求头字段,如果经过多级反向代理的话,IP将会追加在其后并以逗号隔开,X-Forwarded-For的值并不止一个,取X-Forwarded-For中第一个非unknown的有效IP字符串即可。
经过apache http转发后一般会加上Proxy-Client-IP请求头,WL-Proxy-Client-IP是它的weblogic插件加上的请求头,有些代理服务器会加上此请求头HTTP_CLIENT_IP,nginx代理一般会加上请求头X-Real-IP。获取方法参考下面: