2012-09-28 67 views
3

我運行的EasyPHP和PHP5,當我運行它仍然返回代碼200的代碼在Windows 7機器上測試該代碼片段,我'使用不存在的網址,所以它不應該,應該嗎?這是因爲重定向發生在例如http://www.123-reg.co.uk?這就是我懷疑的,但我正在努力尋找我如何解決這個問題。測試,如果一個網站是增長了檢查CURLINFO_HTTP_CODE返回20​​0即使網站是假的

$url = "http://www.bnkbkvbirbcx.co.uk"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_NOBODY, TRUE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); 
$hr = curl_exec($ch); 
$httpreturncode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
echo $httpreturncode; 

插入var_dump($ hr,curl_getinfo($ ch))會產生這個輸出;

string 'HTTP/1.1 200 OK 

Date: Fri, 28 Sep 2012 20:18:16 GMT 

Server: Apache 

Cache-control: no-cache, no-store 

Expires: Thu, 01 Jan 1970 00:00:00 GMT 

Pragma: no-cache 

Connection: close 

Content-Type: text/html; charset=UTF-8 

' (length=224) 

array 
'url' => string 'http://www.bnkbkvbirbcx.co.uk' (length=29) 
'content_type' => string 'text/html; charset=UTF-8' (length=24) 
'http_code' => int 200 
'header_size' => int 224 
'request_size' => int 62 
'filetime' => int -1 
'ssl_verify_result' => int 0 
'redirect_count' => int 0 
'total_time' => float 0.063 
'namelookup_time' => float 0.016 
'connect_time' => float 0.031 
'pretransfer_time' => float 0.031 
'size_upload' => float 0 
'size_download' => float 0 
'speed_download' => float 0 
'speed_upload' => float 0 
'download_content_length' => float -1 
'upload_content_length' => float 0 
'starttransfer_time' => float 0.063 
'redirect_time' => float 0 
'certinfo' => 
array 
    empty 
'redirect_url' => string '' (length=0) 
+0

我相信cURL有一個選項來禁用重定向。 –

+0

當我打電話給一個「假」網站時,我個人將其解釋爲無效網頁,您將在網頁中獲得錯誤頁面,我將收到404響應代碼,我將不會重定向。到目前爲止,我看不到你的問題是什麼...... – rekire

+0

你應該能夠看到代碼,它只是在許多例子中相同,所以我不知道爲什麼我應該有這個問題。 – kethi

回答

0

我想建議爲您的計算機/服務器設置另一個DNS服務器。您的供應商似乎將不存在的域名重定向到他們的主頁。

我不知道你的供應商維珍傳媒,但與德國電信有停用自己的主頁這個選項一個選項。

一種選擇是使用像他們從谷歌它通過8.8.8.8 8.8.4.4和

我希望幫助有aviable開放/免費DNS服務器!

+0

無論我做什麼來解決這個問題,事實仍然是,當我的網站上線時,這個URL – kethi

+0

對不起,將堅持到這一點,簡而言之 - 謝謝我需要在Web服務器上測試這個不是我的wamp,它似乎現在清楚我的ISP正在阻礙,謝謝大家。 – kethi

0

好吧,我終於得到了這條底線,我覺得自己很蠢,我花了這麼長時間吧!我的isp會介入一個「便利的功能」,如下所示:「如果您輸入的地址沒有找到一個站點,這個方便的功能會將不正確的地址轉換爲網絡搜索,所以不會出現錯誤消息,您將得到一個列表我們最接近的比賽「。我還發現,我可以選擇「關閉」這個便捷功能,而現在我可以得到我期望的結果。感謝您的所有輸入,正如您可以從我的一些shakey帖子中看到的,我是新的stackoverflow,但發現它很好地分享我的問題。

0

下面的腳本可能有助於給任何人在這裏結束自己的搜索。

的fakePhrase用於檢測ISP「搜索助手」廣告的HTTP響應。

#!/bin/bash 

fakePhrase="verizon" 
siteList=(
    'http://google.com' 
    'https://google.com' 
    'http://wikipedia.org' 
    'https://wikipedia.org' 
    'http://cantgettherefromhere' 
    'http://searchassist.verizon.com' 
) 

exitStatus=0 

function isUp { 
    http=`curl -sL -w "%{http_code}" "$1" -o temp_isUp` 
    fakeResponse=`cat temp_isUp | grep $fakePhrase` 
    if [ -n "$fakeResponse" ]; then 
    http=$fakePhrase 
    fi 
    case $http in 
    [2]*) 
    ;; 
    [3]*) 
    echo 'Redirect' 
    ;; 
    [4]*) 
    exitStatus=4 
    echo "$1 is DENIED with ${http}" 
    ;; 
    [5]*) 
    exitStatus=5 
    echo "$1 is ERROR with ${http}" 
    ;; 
    *) 
    exitStatus=6 
    echo "$1 is NO RESPONSE with ${http}" 
    ;; 
    esac 
} 

for var in "${siteList[@]}" 
do 
    isUp $var 
done 

if [ "$exitStatus" -eq "0" ]; then 
    echo 'All up' 
fi 

rm temp_isUp 
exit $exitStatus