testdns.php 1.7 KB

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