很多站长朋友们都不太清楚phpurl代理,今天小编就来给大家整理phpurl代理,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php获取url参数 2、 Web服务器根据url参数代理 3、 如何用php获得上一页面的url 4、 如何利用php获取url反向代理后面的真实地址? 5、 php如何实现url转发? php获取url参数1、在当前网页echo出变量$_SERVER['HTTP_HOST']即可获取域名或主机地址。
2、在当前网页echo出变量$_SERVER['PHP_SELF']即可获取网页地址。
3、在当前网页echo出变量$_SERVER["QUERY_STRING"]即可获取网址参数。
4、在当前网页echo出变量$_SERVER['HTTP_REFERER']即可获取用户代理。
5、在当前网页echo出变量$_SERVER['HTTP_HOST']点上$_SERVER['REQUEST_URI']即可获取完整的url,后面带参数自己点上即可。
6、也是点上,用个变量保存好输出。
Web服务器根据url参数代理根据url参数代理到不同的虚拟主机中
TIP:正向代理、反向代理以及url重写
url为: ;a=Add
需求:根据?后的c=usera=Add进行匹配,从而进入不同的虚拟主机中
注意:此处url中的1915是authid,authid是动态生成,所以需要考虑到该问题(使用正则解决即可)。
实现技术:使用了apache的RewriteRule重定向到指定的url中,具体配置如下:
实现技术:使用了nginx的 $request_uri 进行正则匹配
实现技术:通过lighttpd服务器反向代理技术,对整体请求进行二次识别,对url识别后,使用函数对参数进行识别,从而根据不同的url以及参数的变量进入到Python中,从而实现PHP+Python
lighttpd官方文档解释如下:
如何用php获得上一页面的urlecho $_SERVER['HTTP_REFERER'];
需要注意的是,$_SERVER['HTTP_REFERER'] 完全来源于浏览器。并不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,$_SERVER['HTTP_REFERER'] 不总是真实正确的。
如何利用php获取url反向代理后面的真实地址?下面的代码用于获得真实的客户端ip,俗话说,道高一尺魔高一丈,更高级的伪装能够骗过这种检测也有可能,不过至少让伪装的门槛提高不少。
function getip() {
$unknown = 'unknown';
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) $_SERVER['HTTP_X_FORWARDED_FOR'] strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown) ) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif ( isset($_SERVER['REMOTE_ADDR']) $_SERVER['REMOTE_ADDR'] strcasecmp($_SERVER['REMOTE_ADDR'], $unknown) ) {
$ip = $_SERVER['REMOTE_ADDR'];
}
/*
处理多层代理的情况
或者使用正则方式:$ip = preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : $unknown;
*/
if (false !== strpos($ip, ','))
$ip = reset(explode(',', $ip));
return $ip;
}
需要做下简单解释:
一、没有使用代理服务器的PHP获取客户端IP情况:
REMOTE_ADDR = 客户端IP
HTTP_X_FORWARDED_FOR = 没数值或不显示
二、使用透明代理服务器的情况:Transparent Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215)
这类代理服务器还是将客户端真实的IP发送给了访问对象,无法达到隐藏真实身份的目的.
三、使用普通匿名代理服务器的PHP获取客户端IP情况:Anonymous Proxies
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)
这种情况下隐藏了客户端的真实IP,但是向访问对象透露了客户端是使用代理服务器访问它们的.
四、使用欺骗性代理服务器的情况:Distorting Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215)
这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它.
五、使用高匿名代理服务器的PHP获取客户端IP情况:High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 没数值或不显示
无论是REMOTE_ADDR还是HTTP_FORWARDED_FOR,这些头消息未必能够取得到,因为不同的浏览器不同的网络设备可能发送不同的IP头消息.因此PHP使用$_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 获取的值可能是空值也可能是“unknown”值.
php如何实现url转发?最简单实现,一行代码
echo file_get_contents(""); //百度就是你的了
就行了,这个效率低下
效率高一点,就 curl
上面的都是直接把人家页面的html代码拿过来显示
这要造成的结果就是,html里面使用相对路径的东西就会出错
比如说上面的百度,就无法使用搜索
然后 就是 Nginx反向代理
关于phpurl代理的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpurl代理 php curl代理ip的详细内容...