同一域名对应不同IP,访问指定主机文件内容的方法
2013-09-08 13:03
501 查看
PHP获取远程主机文件内容方法很多,例如:file_get_contents,fopen 等。
则不能使用file_get_contents获取 192.168.100.101的内容,因为会根据负载均衡原则分配到不同主机,因此并不能确定每次都是访问192.168.100.101这台主机。
如本地设置IP指定HOST的方法,但如果同一个程序中,需要先访问192.168.100.101,然后再访问192.168.100.102,则本地设置IP指定HOST的方法不行,因为不能将多个IP指定同一个域名。
因此,需要使用fsockopen方法去访问不同IP的主机,然后通过header设置host来访问。
使用fsockopen需要设置php.ini中的allow_url_fopen为 on。
<?php echo file_get_contents('http://demo.fdipzone.com/test.php'); ?>但如果同一域名对应了不同IP,例如 demo.fdipzone.com 对应3个IP192.168.100.101, 192.168.100.102, 192.168.100.103。
则不能使用file_get_contents获取 192.168.100.101的内容,因为会根据负载均衡原则分配到不同主机,因此并不能确定每次都是访问192.168.100.101这台主机。
如本地设置IP指定HOST的方法,但如果同一个程序中,需要先访问192.168.100.101,然后再访问192.168.100.102,则本地设置IP指定HOST的方法不行,因为不能将多个IP指定同一个域名。
因此,需要使用fsockopen方法去访问不同IP的主机,然后通过header设置host来访问。
使用fsockopen需要设置php.ini中的allow_url_fopen为 on。
<?php /** * @param String $ip 主机ip * @param String $host 主机域名 * @param int $port 端口 * @param String $url 访问的url * @param int $timeout 超时时间 * @return String */ function remote_visit($ip, $host, $port, $url, $timeout){ $errno = ''; $errstr = ''; $fp = fsockopen($ip, $port, $errno, $errstr, $timeout); if(!$fp){ // connect fail return false; } $out = "GET ${url} HTTP/1.1\r\n"; $out .= "Host: ${host}\r\n"; $out .= "Connection: close\r\n\r\n"; fputs($fp, $out); $response = ''; // 读取内容 while($row=fread($fp, 4096)){ $response .= $row; } fclose($fp); $pos = strpos($response, "\r\n\r\n"); $response = substr($response, $pos+4); return $response; } echo remote_visit('192.168.100.101', 'demo.fdipzone.com', 80, '/test.php', 90); echo remote_visit('192.168.100.102', 'demo.fdipzone.com', 80, '/test.php', 90); echo remote_visit('192.168.100.103', 'demo.fdipzone.com', 80, '/test.php', 90); ?>
相关文章推荐
- 同一域名对应不同IP,访问指定主机文件内容的方法
- Apache Tomcat配置虚拟主机的方法(不同域名绑定同一IP访问不同网站)
- nginx 下使用laravel 需要配置.conf文件,否则无法访问指定路由(不知道说路由是否合适,刚学的小白,tp中对应的应该方法)
- linux 命令之 curl 指定ip访问对应的域名地址
- nginx 下使用laravel 需要配置.conf文件,否则无法访问指定路由(不知道说路由是否合适,刚学的小白,tp中对应的应该方法)
- 阿里云 云解析使用方法/在阿里云ESC服务器解析域名并绑定服务器IP后上传文件通过域名访问步骤教程
- 多个域名指定到同一个IP下,访问时如何决定改跳到哪个文件目录
- 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容
- iis 6.0限制通过域名或者ip的形式从外部访问.txt的文件( IIS6.0禁止用户下载指定类型文件)
- 同一域名对应多个IP时,获取指定IP服务器的远程网页内容
- 多域名解析同一IP访问虚拟主机不同目录(转)
- 访问KVM宿主机IP指定端口,跳转到虚拟机IP指定端口的方法
- 如果一个域名对应多个IP,取得指定IP下的网页内容
- 一个Tomcat及一个ip,绑定不同的域名,各个域名访问各自不同应用程序的配置方法
- 多域名解析同一IP访问虚拟主机不同目录
- Web浏览器限制此文件显示可能访问您的计算机的活动内容--解决方法
- hosts 文件添加器 图形化添加ip和域名对应
- 【网页访问单向、双向验证均可以】https原理及tomcat配置https方法[生成CA根证书配置tomcat后,若要成功访问axis中的webservice,需要配置它对应的axis2.xml文件]
- nginx 配置虚拟主机访问PHP文件 502错误的解决方法
- apache设置多个虚拟主机使多个域名可行有两种办法:1.多个IP解析到不同虚拟主机 2.单个IP绑定多个域名分解