不过大部分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。获取方法参考下面:
网络通信可分为两种模式:TCP有连接的通信UDP无连接的通信
依照上述的问题我可以理解为你是要进行有连接的通信。是要经过三次握手才能实现可靠的连接
第一次:建立连接时三次握手,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN(Synchronize Sequence Numbers)同步序列号。
服务器端即可使用:
Socket s=serverSocket.accept()
String clientIP=s.getInetAddress().toString()
这就实现了java服务器端获取到连接此服务器的客户端的IP了,你若想实现获取所有连接此服务器的客户端的IP,你可以把每次accept()返回的socket放进全局的Vector里面,然后在遍历这个vector方法就同上代码咯……
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)