【发布时间】:2011-12-09 06:20:15
【问题描述】:
有人知道@fsockopen 的替代品吗?我正在尝试检测代理——用户点击站点,获取用户 IP 地址,然后使用 @fsockopen 查看他们是否使用特定端口。使用此功能是迄今为止最可靠的检测,除了禁止特定 IP/ IP 模式。但是,对于访问我的网站的用户来说,它非常缓慢且无法接受。有没有其他选择,或者有什么方法可以让它更快?并且没有将函数的超时设置为 1 秒也无济于事:P。
示例代码:
if ( $sock = @fsockopen($ _server['REMOTE_ADDR'], 80, $errno, $errst, 1) ) { echo "proxy!"; }
curl 能做到这样吗?
提前致谢!
【问题讨论】:
-
请添加说明您想要实现的目标并向我们展示一些代码。检测代理是什么意思,为什么设置超时与它有关?
-
我的意思是检测访问者是否在代理下查看网站。 IE:接受 _server['REMOTE_ADDR'] 并根据它确定它是否是代理。对于第二个部分,大多数人认为 fsockopen 中的参数 - "timeout"(例如:fsockopen("www.example.com", 80, $errno, $errstr, 30) -- 30 秒是这里的超时时间),效果我所指的“缓慢”。它没有。
-
您如何确定是否有人通过代理查看网站?您是否尝试通过端口 80 连接到他们的 IP?
-
基本上是的: if ( $sock = @fsockopen($ _server['REMOTE_ADDR'], 80, $errno, 1) ) { echo "proxy!"; }
标签: php javascript proxy vpn fsockopen