[英]How to get client's Proxy IP address in CometD?
使用提琴手作為HTTP代理,我連接到本地CometD服務器。
我繼承類DefaultSecurityPolicy
,並得到了與客戶端的IP地址server.getContext().getRemoteAddress().getAddress().getHostAddress()
在canHandshake
方法。
但是,它返回客戶端的真實IP(原始IP),但是我要的是直接與服務器通信的IP。 有什么幫助嗎?
如果客戶端使用WebSocket與CometD服務器進行通信,那么HTTP代理根本不會生效,那么我得到的是原始地址,對嗎?
public function getlocationFromIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
// Check if using Shared Internet Environment
$ipAddress = $_SERVER['HTTP_CLIENT_IP'];
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
// Check if using Proxy User
$ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ipAddress = $_SERVER['REMOTE_ADDR'];
}
$ip_geo_url = 'http://freegeoip.net/json/'.$ipAddress;
$ip_json = file_get_contents($ip_geo_url);
$ip_json = json_decode($ip_json);
return $ip_json;
}
如果有幫助的話,它將獲得whit ip的位置...也將獲得代理位置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.