访客ip在10秒内改变

时间:2015-07-14 11:14:33

标签: php .net ip video-streaming

当访问者进入我的网站时,我会跟踪他们的IP地址。当他们在网站上打开视频时,我将此IP地址作为编码URL请求的一部分发送到流式传输视频的服务器。为了能够流式传输视频,解码后的URL参数中的IP地址应与请求流的URL相同。

现在我注意到并不总是一样的。我清楚地知道,如果在进入网站和流媒体视频之间会有很多时间,那么IP可能会因NAT,网关等而发生变化。但实际上它发生在几秒钟的时间范围内。请参阅下面的日志文件。

网站和流媒体服务器之间的代码差异是:

  1. 网站是用.NET编写的 - > 使用以下方法检测IP: Request.UserHostAddress
  2. 流媒体服务器使用PHP来传输视频。 - > 使用以下方式检测IP: $_SERVER['REMOTE_ADDR']
  3. 我想要实现的是,网站上的视频流网址肯定会被蜘蛛,远程网站等收集,不能用于远程下载或播放视频。我知道临时URL解决方案,但我只想实现它,如果没有简单的方法来解决我当前的问题。

    我的问题:

    1. 为什么会这样?我使用错误的代码来检测IP地址?
    2. 任何更好的解决方案如何解决这个问题?
    3.   

      用户: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

1 个答案:

答案 0 :(得分:0)

如果用户位于代理后面,您可能需要查找转发的标头:

$_SERVER['HTTP_X_FORWARDED_FOR']
$_SERVER['HTTP_X_FORWARDED_HOST'] 
$_SERVER['HTTP_X_FORWARDED_SERVER']

如果设置了其中任何一个,这意味着请求来自某种代理服务。