Я проверяю, что сайт сайта запущен и проверен на наличие кода статуса HTTP 200 :
<?php $url = 'www.proxyserver-demo.com'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_exec($ch); $retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if (200==$retcode) { echo "All's well"; } else { echo "not so much"; } ?>
Однако на каждом сайте, который я пытаюсь сделать, даже несуществующие возвращают 200 OK статус без ошибок, что не должно быть возможным в случае несуществующих. (мой код всегда выводит «Все хорошо»)
Моя ОС – Centos linux, что может быть здесь?
извините за злоупотребление полем ответа для того, что, вероятно, должно быть комментарием, но я не могу представить, как правильно представить эту информацию в противном случае. Я, честно говоря, еще не знаю, как выбить их комментарии в любую правильно отображаемую и отформатированную фигуру. : – |
Во всяком случае, поскольку ваш код должен работать нормально, но для вас он всегда перенастраивает «все в порядке», пока вы проверяете ответ HTTP, может быть, ваш интернет-провайдер делает DNS-highjacking , что в основном возвращает фальшивые данные ip-адреса, перенаправление вы на свой сервер, как правило, за денежную прибыль под видом дружелюбия. (ISP-страница, которая показывает, что «эта страница не существует» в сочетании с объявлениями или предложением таких услуг, как регистрация домена и т. Д.)
простой способ тестирования – просто запросить данные DNS с помощью приложения, такого как dig . Запрос на правильно функционирующий DNS-сервер для несуществующего домена должен вернуть NXDOMAIN в качестве его статуса:
поэтому, когда мы проверяем полностью фальшивый домен notexisting.fake
с помощью следующей команды: dig A notexisting.fake.
, это то, что он обычно должен дать:
harald@Midians_Gate:~$ dig A notexisting.fake. ; <<>> DiG 9.7.3 <<>> A notexisting.fake. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 28725 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;notexisting.fake. IN A ;; AUTHORITY SECTION: . 1780 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012061700 1800 900 604800 86400 ;; Query time: 24 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Jun 17 18:05:10 2012 ;; MSG SIZE rcvd: 109
как вы можете видеть, прося об этом несуществующем домене notexisting.fake.
возвращает нас
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 28725
Если мы запрашиваем google.com с помощью dig A google.com.
harald@Midians_Gate:~$ dig A google.com. ; <<>> DiG 9.7.3 <<>> A google.com. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13223 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 300 IN A 74.125.132.138 google.com. 300 IN A 74.125.132.139 google.com. 300 IN A 74.125.132.101 google.com. 300 IN A 74.125.132.113 google.com. 300 IN A 74.125.132.100 google.com. 300 IN A 74.125.132.102 ;; Query time: 29 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Jun 17 18:05:20 2012 ;; MSG SIZE rcvd: 124
наш запрос возвращает нам правильный NOERROR
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13223 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
и возвращает нам ip-адрес, найденный для записи A
;; ANSWER SECTION: google.com. 300 IN A 74.125.132.138 google.com. 300 IN A 74.125.132.139 google.com. 300 IN A 74.125.132.101 google.com. 300 IN A 74.125.132.113 google.com. 300 IN A 74.125.132.100 google.com. 300 IN A 74.125.132.102
Поэтому, если ваш запрос на поддельный домен возвращает ip-адрес, вы знаете, что проблема связана с вашим DNS, и ваш isp, без сомнения, перенаправляет каждый несуществующий запрос на собственный сервер, возиться с вашей «стратегией моего сайта», поскольку вы получите статус 200 OK, но это будет эффективно от самозванца.
Если это так, вы можете: