当访问者进入我的网站时,我会跟踪他们的IP地址。当他们在网站上打开视频时,我将此IP地址作为编码URL请求的一部分发送到流式传输视频的服务器。为了能够流式传输视频,解码后的URL参数中的IP地址应与请求流的URL相同。
现在我注意到并不总是一样的。我清楚地知道,如果在进入网站和流媒体视频之间会有很多时间,那么IP可能会因NAT,网关等而发生变化。但实际上它发生在几秒钟的时间范围内。请参阅下面的日志文件。
网站和流媒体服务器之间的代码差异是:
$_SERVER['REMOTE_ADDR']
。我想要实现的是,网站上的视频流网址肯定会被蜘蛛,远程网站等收集,不能用于远程下载或播放视频。我知道临时URL解决方案,但我只想实现它,如果没有简单的方法来解决我当前的问题。
我的问题:
用户:125.38.245.164 - 2015年7月8日,下午8:22
尝试:使用不同的IP访问:03bc9af8-18bd-4cf6-9de1-dea70a663306
请求中的IP:123.151.42.57
检测到IP:125.38.245.164
用户:114.4.21.210 - 2015年7月8日,晚上8:23
尝试:使用不同的IP访问:68fa4850-2db7-49e1-b26e-bf37f807ed9c
请求中的IP:107.167.103.80
检测到IP:114.4.21.210
用户:111.206.36.14 - 2015年7月8日,晚上8:23
尝试:使用不同的IP访问:af874ac0-ca54-4537-bb0d-4daed5dd98af
请求中的IP:222.188.143.242
检测到IP:111.206.36.14
答案 0 :(得分:0)
如果用户位于代理后面,您可能需要查找转发的标头:
$_SERVER['HTTP_X_FORWARDED_FOR']
$_SERVER['HTTP_X_FORWARDED_HOST']
$_SERVER['HTTP_X_FORWARDED_SERVER']
如果设置了其中任何一个,这意味着请求来自某种代理服务。