testdns.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. # try NS1
  13. $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
  14. try {
  15. $result = $resolver->query($host, 'A');
  16. print_r($result);
  17. return true;
  18. } catch(Net_DNS2_Exception $e) {
  19. # try default nameserver
  20. $resolver = new Net_DNS2_Resolver();
  21. try {
  22. $result = $resolver->query($host, 'A');
  23. print_r($result);
  24. return true;
  25. } catch(Net_DNS2_Exception $e) {
  26. return "lookup error";
  27. }
  28. }
  29. $hostA = $result->answer;
  30. if($hostA[0]->type == 'CNAME') {
  31. if(cwp7CheckA($hostA[0]->cname, $serverIP, $nameserverIP, $recurse++)) {
  32. return true;
  33. }
  34. }
  35. if($hostA[0]->type == 'A') {
  36. if($hostA[0]->address == $serverIP){
  37. return true;
  38. }
  39. }
  40. return false;
  41. }
  42. function cwp7CheckSOA($domain, $nameserverIP = NS1) {
  43. $nameserver = array($nameserverIP);
  44. # try NS1
  45. $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
  46. try {
  47. $result = $resolver->query($domain, 'SOA');
  48. return 'self';
  49. } catch(Net_DNS2_Exception $e) {
  50. # try default NS
  51. $resolver = new Net_DNS2_Resolver();
  52. try {
  53. $result = $resolver->query($domain, 'SOA');
  54. } catch(Net_DNS2_Exception $e) {
  55. return 'none';
  56. }
  57. }
  58. return $result->answer[0]->mname;
  59. };
  60. $result = cwp7CheckSOA($domain);
  61. print_r($result);
  62. if(cwp7CheckA($host, "5.226.148.139", NS1)) {
  63. echo "success";
  64. };