阻止 Curl 上的 DNS 查找 (PHP)
Block DNS Lookup on Curl (PHP)
如何阻止 Curl 上的 DNS 查找?
所以,我认为有两个选择,有:
- 使用 HTTP(或其他类型?)代理。但是,DNS Loockup 将由 Proxy 或 'original' 服务器进行?
例子:
curl_setopt($ch, CURLOPT_PROXY, '0.0.0.');
- 为域设置默认 DNS。在 Windows 中有一个 "ETC/HOSTS" 文件,但它在 Centos 上的什么地方?我如何在 CURL 中设置这个默认值?因为 CURL 将继续尝试查找 DNS。
这行得通吗?
谢谢大家。 :)
如果您试图将请求强制发送到与 DNS 指定的服务器不同的服务器,那么您可以使用/etc/hosts
或C:\Windows\System32\drivers\etc\hosts
, 或 你可以通过手动设置主机 header.
完全通过 cURL 来完成
$hostname = 'www.mydomain.com';
$ip = '1.2.3.4';
$proto = 'http';
$request = '/foo/bar/index.php';
$url = sprintf('%s://%s%s', $proto, $ip, $request); // http://1.2.3.4/foo/bar/index.php
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Host: '.$hostname]);
curl_exec($ch);
如何阻止 Curl 上的 DNS 查找?
所以,我认为有两个选择,有:
- 使用 HTTP(或其他类型?)代理。但是,DNS Loockup 将由 Proxy 或 'original' 服务器进行?
例子: curl_setopt($ch, CURLOPT_PROXY, '0.0.0.');
- 为域设置默认 DNS。在 Windows 中有一个 "ETC/HOSTS" 文件,但它在 Centos 上的什么地方?我如何在 CURL 中设置这个默认值?因为 CURL 将继续尝试查找 DNS。
这行得通吗?
谢谢大家。 :)
如果您试图将请求强制发送到与 DNS 指定的服务器不同的服务器,那么您可以使用/etc/hosts
或C:\Windows\System32\drivers\etc\hosts
, 或 你可以通过手动设置主机 header.
$hostname = 'www.mydomain.com';
$ip = '1.2.3.4';
$proto = 'http';
$request = '/foo/bar/index.php';
$url = sprintf('%s://%s%s', $proto, $ip, $request); // http://1.2.3.4/foo/bar/index.php
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Host: '.$hostname]);
curl_exec($ch);