testdns.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. $domain = "thurdesk.ch";
  3. $host = "www." . $domain;
  4. const NS1 = "185.163.51.142";
  5. $nameserverName = "ns1.thurdata.ch";
  6. require_once 'Net/DNS2.php';
  7. function cwp7CheckA($host, $serverIP, $nameserverIP, $recurse = 0) {
  8. if($recurse > 3) {
  9. return false;
  10. }
  11. $nameserver = array($nameserverIP);
  12. $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
  13. try {
  14. $result = $resolver->query($host, 'A');
  15. } catch(Net_DNS2_Exception $e) {
  16. return "lookup error";
  17. }
  18. print_r($result);
  19. $hostA = $result->answer;
  20. if($hostA[0]->type == 'CNAME') {
  21. if(cwp7CheckA($hostA[0]->cname, $serverIP, $nameserverIP, $recurse++)) {
  22. return true;
  23. }
  24. }
  25. if($hostA[0]->type == 'A') {
  26. if($hostA[0]->address == $serverIP){
  27. return true;
  28. }
  29. }
  30. return false;
  31. }
  32. function cwp7CheckSOA($domain, $nameserverIP = NS1) {
  33. $nameserver = array($nameserverIP);
  34. # try NS1
  35. $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
  36. try {
  37. $result = $resolver->query($domain, 'SOA');
  38. } catch(Net_DNS2_Exception $e) {
  39. # try default NS
  40. $resolver = new Net_DNS2_Resolver();
  41. try {
  42. $result = $resolver->query($domain, 'SOA');
  43. } catch(Net_DNS2_Exception $e) {
  44. return 'none';
  45. }
  46. }
  47. return $result->answer[0]->mname;
  48. };
  49. $result = cwp7CheckSOA($domain);
  50. print_r($result);
  51. $host = cwp7CheckA($host, "5.226.148.139", gethostbyname($result) ? gethostbyname($result) : NS1);