在 curl 实用程序中有一个 --resolve
选项,允许您添加 DNS 条目并在调用主机时强制使用特定的 IP 地址。
从版本7.21.3开始,cURL 允许指定 IP 地址,从而伪造请求的主机名。
$ curl --resolve www.example.com:80:127.0.0.1 http://www.example.com/
--resolve
开关允许您告诉 curl 在解析给定主机名时要请求哪个地址。在上面的代码片段中,cURL 使用 127.0.0.1(本地主机)代替通过 DNS 解析 www.example.com 而得到的地址。
当不带 http 代理使用此选项时,它可以正常工作,并且 DNS 条目可以在缓存中找到。
问题是我想同时使用此选项和 curl 的 --proxy
参数。当设置后者时,调用同一主机时无法找到 DNS 条目。
$ curl --proxy 1.2.3.4:80 --resolve www.example.com:80:127.0.0.1 http://www.example.com/
有什么办法可以解决这个问题吗?
我有一个想法,代理正在使用自己的DNS缓存,我们无法更改它,但也许我是错的?