我想要做的是向example.com发送一个curl请求,而不是使用DNS查找我想专门发送请求说1.1.1.1
我想这样做是因为我想知道我们的服务器中的哪些服务器要求并且不会被负载均衡器碰到。
我想知道是否有这样的事情:
$ch = curl_init();
curl_setopt( CURLOPT_URL, 'example.com' );
curl_setopt( CURLOPT_ENDPOINT_IP, '1.1.1.1' ); // <= is there something like this?
我很确定curl本身没有这样做的机制,但我怎么能达到这个效果呢?
IP本身的服务器正在运行vhosts,因此重要的是HTTP请求包含一个命名的Host而不是IP,这就是为什么我需要在请求中放置一个命名主机但是通过IP地址附加到它。
答案 0 :(得分:4)
curl_setopt( $ch, CURLOPT_URL, 'http://1.1.1.1/' );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Host: example.com') );
HTTP协议知识的力量;)