2013-03-28 81 views
1

這是關於域名驗證的另一個話題。我閱讀其他主題的答案。我嘗試了幾個腳本。我不要想要使用API。除非有免費的API,但我還沒有找到。PHP域名驗證

我試圖檢查DNS下面的代碼:

if($_POST['submit']){ 

    if(!empty($_POST['check_site'])){ 
     $url = $_POST['check_site']; 

     //add .nl 
     if(!strpos($url,'.nl')){ 
      $url.= '.nl'; 
     } 

     //check dns record 
     $result = dns_get_record($url); 

     if(count($result) > 0) 
     { 
      echo $url. ' is used'; 
     }else{ 
      echo $url. ' is free'; 
     } 
    } 
} 

問題是,當我嘗試檢查「example.nl」(A registred但活動域)它不給DNS數據回來,我驗證是免費的域名。

我的問題是:

  1. 有誰修復?

  2. 有沒有人有一個建議(鏈接到其他腳本/文)

  3. 有沒有一種方法來檢查,如果一個網站有一個註冊商

我還是個學生,但這不是一個學校項目。在

直播代碼:link

我檢查的答案,在此先感謝

編輯:

當我嘗試

shell_exec (whois -h whois.domain-registry.nl 'is example.nl'); 

,我收到了意想不到的T_STRING錯誤。什麼是使用這個的正確方法?

+0

在dns_get_record()之前echo $ url並檢查它包含什麼? – 2013-03-28 09:40:58

+0

@RohitKumarChoudhary我填寫的域名。您現在可以在我添加的鏈接中看到它。如果域名不包含'.nl',我將其添加。 – JochemQuery 2013-03-28 09:43:41

+0

我知道,但一定要檢查它包含什麼 – 2013-03-28 09:46:36

回答

1

我認爲PHP函數檢查站點是否分配給IP地址。這就是爲什麼不活動的域名被認爲是免費的!

無論如何,你可以用PHP的checkdnsrr()再次檢查你的代碼。

如果它不起作用,有一個extension爲此目的。我認爲這是免費的

+0

已經嘗試過。同樣的結果:http://jdkmedia.nl/PHP/index2.php – JochemQuery 2013-03-28 10:08:16

+0

你試過這個擴展嗎? – 2013-03-28 10:10:23

+0

我早一點發現它。我會再試一次它在本地主機中給了我很多錯誤(我使用它,因爲我的站點錯誤報告是關閉的) – JochemQuery 2013-03-28 10:13:15

4

如果你的PHP安裝有權限來執行基於UNIX的服務器上常見的whois的命令行工具,你可以從下面的命令您的信息:

whois -h whois.domain-registry.nl 'is example.nl' 

該命令從this SIDN page採取下「是」。您必須檢查您是否可以從一個IP地址每天進行超過15次這樣的操作,因爲對於更完整的whois(沒有'is')您也無法做到這一點。您似乎也只限於每秒一個請求。

+0

不錯的一個! +1的想法 – ConcurrentHashMap 2013-03-28 10:03:11

+0

的確很不錯。我編輯了我的答案。你能回答嗎? – JochemQuery 2013-03-28 10:23:13