比如我想通过php抓取一个页面 http://www.xxx.com/test.php
但是www.xxx.com这个域名是需要在我本地做了下面这样的host才能访问的
123.1.1.1 www.xxx.com我不想再服务器上修改/etc/hosts文件
我有什么办法可以在php里面设置域名www.xxx.com是指向IP:123.1.1.1的

解决方案 »

  1.   

    不行的,只能通过域名访问
    就是php可以在代码里做host吗
      

  2.   


    可以的,可以自定义http header,然后增加一行
    header: www.xxx.com
    然后访问的url是 http://ip/XXX
    这样就ok了
    curl或者 fsockopen都可以做到
      

  3.   

    更正:自定义http header
    host: www.xxx.com
      

  4.   

    请问一下如何写
    是使用header函数还是在使用curl或者 fsockopen的时候定义参数
      

  5.   


    自己定义参数例如
                    $request = "";
                    $request.="POST ".$URL." HTTP/1.1\n";
                    $request.="Host: ".$HOSTNAME."\n";
                    $request.="Content-type: application/x-www-form-urlencoded\n";
                    $request.="Content-length: ".strlen($data)."\n";
                    $request.="Connection: close\n";
                    $request.="\n";
                    $request.=$data."\n";
      

  6.   

    那我改hosts文件岂不是更方便,我在找一个比较简单的方法,连hosts都不用改,能直接写在php中
      

  7.   

    能弱弱的问一下,使用soap的话可否实现
      

  8.   


    DNS原理懂的话,应该不会问出这种问题。
      

  9.   

    如果有很多台服务器需要这样做,你会写个脚本去为每台服务器装bind?可我不是运维,我只是php,我只是想在我权限允许的范围内去解决问题。我表达可能是有问题,谢谢您的回复!