同一域名对应不同IP和访问指定主机文件内容的方法

PHP获取远程主机文件内容方法很多,例如:file_get_contents,fopen 等。

<?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可以访问域名不行
, file_get_contents
, 不同
, 根据域名获取ip
获取域名IP
nginx 指定域名访问、apache 指定域名访问、域名访问到指定目录、php 指定域名访问、无法访问指定的主机,以便于您获取更多的相关知识。

时间: 2024-10-03 15:29:25

同一域名对应不同IP和访问指定主机文件内容的方法的相关文章

虚拟主机-二级域名测试网站指向根目录下指定的文件夹

问题描述 二级域名测试网站指向根目录下指定的文件夹 域名:xiangbaoshow.com 用二级域名:text.xiangbaoshow 做一个测试的网站 虚拟主机上的 要怎么操作?

Python扫描IP段查看指定端口是否开放的方法

  本文实例讲述了Python扫描IP段查看指定端口是否开放的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6

IE可以访问服务器,客户端使用域名无法访问,提示无法解析域名,使用ip才能访问

问题描述 找了好久,都没有找到问题的原因.麻烦高人指点一下!拜谢了!症状描述:使用域名的时候,远程桌面能够连接,ping也能够ping通的,并且使用浏览器也能够打开web服务的但是使用客户端连接服务器的时候,如果是域名,总是提示"theremotenamecouldnotberesolved".改用ip地址(使用ping命令获得的ip地址),客户端能够正常连接.在别的电脑上,客户端可以用域名正常的连接服务器的.只有这台电脑不行.在问题电脑上,使用flushdns命令刷新过了dns解析,

水晶报表 配置错误:CrystalDecisions.Web ,系统找不到指定的文件的解决方法

水晶报表 配置错误:分析器错误信息: 未能加载文件或程序集"CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"或它的某一个依赖项.系统找不到指定的文件. 本来是以前缺少某些组件或文件,在翻了大量的资料后,才发现是缺少.net环境下的一些组件.解决方法是安装CRRedist2005_x86.msi 即可. 下载地址是: Crystal Reports fo

VC++在TXT文件指定位置追加内容的方法_C 语言

本文实例讲述了VC++操作文本文件的方法,实现在txt文件指定位置插入内容.对于VC++爱好者有一定的学习参考价值. 主要功能代码如下: void CGoToFileDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon

apache正常访问mht类型文件的配置方法_Linux

一.mht文件简介 MHTML文件又称为聚合HTML文档.Web档案或单一文件网页.单个文件网页可将网站的所有元素(包括文本和图形)都保存到单个文件中.这种封装使您可将整个网站发布为单个内嵌MIME (MIME:通过 Internet 连接传递多媒体资源的一列标准.MIME类型通知程序对象所包含的内容(如图形.声音或视频)的聚合HTML文档(MHTML)文件,或将整个网站作为一个电子邮件或附件发送.Internet Explorer 4.0及更高版本支持此格式. 二.apache支持mht文件的

隐藏word文档中指定的文字内容的方法

  在Word表格中,我们可以考虑设置字体颜色.用图片隐藏文字等手段来使用人无法进行正常的判断,从而达到保密的目的. 1.文字与背景一色 这恐怕不能算是一个技巧,可是正所谓兵不厌诈,最危险的方法就是最安全的方法.我们可以在个人简历的Word文档中将自己的文字颜色与背景颜色设置成同样的颜色,一般就是将文字颜色设置成白色.选中要保密的文字,右键点击并执行"字体"命令,在"字体颜色"中设置为白色,点击"确定"后便可. 2.自动"隐藏文字&qu

win7访问指定网页的妙招

  办法1 修改Hosts文件 hosts文件位于 Windows/system32/drivers/etc/目录下,用于控制域名访问.我想到的办法修改hosts文件,让DNS域名解析这些网站都指向127.0.0.1,如下: 127.0.0.1 www.rzxt.com 127.0.0.1 http://www.xitongshoucang.com/ -- 但是,不可能把所有的域名都写一遍吧,有人问用 127.0.0.1 * 可不可以?答案是不可以,因为hosts文件不支持通配符. 所以这个方法

Win7系统访问指定网页的2个妙招

办法1 修改Hosts文件 hosts文件位于 Windows/system32/drivers/etc/目录下,用于控制域名访问.我想到的办法修改hosts文件,让DNS域名解析这些网站都指向127.0.0.1,如下: 127.0.0.1 www.rzxt.com 127.0.0.1 http://www.xitongshoucang.com/ -- 但是,不可能把所有的域名都写一遍吧,有人问用 127.0.0.1 * 可不可以?答案是不可以,因为hosts文件不支持通配符. 所以这个方法理论