2015-05-12 3 views
1

Как я могу заблокировать поиск DNS на Curl?Блокировать DNS-поиск на Curl (PHP)

Так что, я думаю, что есть две альтернативы, есть: (? Или другой тип)

  1. Использование HTTP прокси. Но DNS Loockup будет создан Proxy или «оригинальным» сервером?

Exemple: curl_setopt ($ ч, CURLOPT_PROXY '0.0.0');

  1. Установите DNS по умолчанию для домена. В Windows se есть файл «ETC/HOSTS», но где он находится на Centos? Как я могу установить это значение по умолчанию в CURL? Поскольку CURL продолжит поиск DNS.

Это будет работать?

Спасибо всем. :)

+0

http имеет очень мало общего с dns, кроме http использует dns для разрешения hostname-> ip, как и все остальное в сети. если вы не хотите, чтобы поиск dns выполнялся, тогда не используйте имена хостов: используйте только IP-адреса. –

+0

Но прямой IP не работает на CURL. Я попробую. :/ – Inkeliz

+1

, вероятно, потому, что сайт, который вы пытаетесь найти, является хостингом, который НЕОБХОДИМО заголовок 'Host:', например. curl для IP, но в заголовках запроса принудительно введите «Host: example.com». –

ответ

1

Если вы пытаетесь заставить запрос на другой сервер, чем то, что определяет DNS, то вы можете гадость с /etc/hosts или C:\Windows\System32\drivers\etc\hosts, ИЛИ вы можете сделать это исключительно через 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); 
+0

Я попробую снова Подключиться с прямым IP-адресом. – Inkeliz

+0

Но что я делаю, если домен имеет субдомен? Пример: http://api.website.com Я настроен на http: //api.0.0.0.0? Это как неправильно. – Inkeliz