droc60607 2013-12-13 19:54
浏览 438
已采纳

有没有办法强制curl使用特定的IP而不是使用DNS查找?

What I want to do is to send a curl request to example.com but rather than using a DNS lookup I want to specifically send the request to say 1.1.1.1

I want to do this because I want to know for certain which of our servers the request is going to and not be bumped around by a load balancer.

I wonder if there is something like this:

$ch = curl_init();
curl_setopt( CURLOPT_URL, 'example.com' );
curl_setopt( CURLOPT_ENDPOINT_IP, '1.1.1.1' ); // <= is there something like this?

I'm pretty sure there isn't a mechanism within curl itself to do this, but how could I achieve this effect?

The server at the IP itself is running vhosts and so its important that the HTTP request includes a named Host and not an IP, which is why I need to put a named host in the request but attach to it by IP address.

  • 写回答

1条回答 默认 最新

  • dousuize3082 2013-12-13 19:58
    关注
    curl_setopt( $ch, CURLOPT_URL, 'http://1.1.1.1/' );
    curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Host: example.com') );
    

    The power of HTTP protocol knowledge ;)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 maccms影视模板 制作影视网站失败 求
  • ¥15 stm32按键设置闹钟数进退位不正常
  • ¥15 三电平逆变器中点电位平衡问题
  • ¥20 这怎么写啊 java课设
  • ¥15 用C语言完成一个复杂的游戏
  • ¥15 如何批量更改很多个文件夹里的文件名中包含文件夹名?
  • ¥50 MTK手机模拟HID鼠标出现卡顿
  • ¥20 求下下面这个数据结构代码
  • ¥20 前端 二进制文件流图片转化异常
  • ¥15 github上的这个C语言项目如何跑起来