抱歉濫用答案領域的東西應該可能是一個評論,但我真的不能想到一種方式來正確呈現此信息,否則。我真的不知道如何將他們的意見轉換成任何正確顯示和格式化的形狀。 : - |
無論如何,因爲你的代碼應該可以正常工作,但是對於你來說,當你檢查一個HTTP響應時,它總是回調「一切正常」,這可能是你的ISP正在做DNS-highjacking,這基本上是返回假的IP地址數據,將您重定向到他們自己的服務器,通常是爲了在用戶友好的僞裝下獲得貨幣收益。 (顯示「此頁面不存在」的ISP頁面與廣告或域註冊等服務提供結合在一起)。
一個簡單的測試方法就是使用應用程序請求DNS數據如dig。查詢到正常工作的DNS服務器不存在的域名應該返回NXDOMAIN其狀態:
所以當我們檢查一個完全假的域notexisting.fake
用下面的命令: dig A notexisting.fake.
,這是它通常應該給:
[email protected]_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.
[email protected]_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
,並返回我們發現A記錄的IP地址
;; 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狀態,但它實際上來自冒名頂替者。
如果是這種情況,那麼你只能:
- 改變你的DNS服務器:使用Google Public DNS(8.8.8.8 8.8.4.4和)或opendns(208.67.222.222和208.67.220.220)
- 請求/抱怨您的isp讓他們更改此策略或爲您提供您自己的非重定向DNS服務器
- 如果您的網絡允許,請運行您自己的專用DNS服務器以進行個人查詢。
你可以找到你的答案在這個堆棧溢出職位: http://stackoverflow.com/questions/6541785/i-want-to-check-if-a-site-is-alive-在這個捲曲代碼內 – shawty
你的代碼運行到哪個具體問題?看起來似乎缺少實際的問題。 – hakre
的問題是,如果進入了一個非可用的網址,然後在DNS服務器重定向的URL opendns.com,我覺得這是我的問題。如何解決這個問題?並使用curl時避免重定向? –