/tools/ipv6_ptr.php

http://freshdns.googlecode.com/ · PHP · 70 lines · 54 code · 15 blank · 1 comment · 1 complexity · b7bbb0b601a59507a16097d7231c1e5d MD5 · raw file

  1. <?php
  2. $prefix = "2001:888:2000:0013::/64"; // You're assigned IPv6 prefix
  3. $stdptr = 'ipv6.example.com'; // The default FQDN we return when reverse DNS is looked up
  4. $config['DNS']['templates']['ipv6ptr'] = array( # DO NOT CHANGE, UNLESS YOU KNOW WHAT YOU ARE DOING!
  5. array("name" => "{#DOMAIN#}", "type" => "SOA", "content" => "{#NS0#} {#HOSTMASTER#} {#SOACODE#}", "prio" => "0", "ttl" => "3600"),
  6. array("name" => "{#DOMAIN#}", "type" => "NS", "content" => "{#NS0#}", "prio" => "0", "ttl" => "3600"),
  7. array("name" => "{#DOMAIN#}", "type" => "NS", "content" => "{#NS1#}", "prio" => "0", "ttl" => "3600"),
  8. array("name" => "{#DOMAIN#}", "type" => "NS", "content" => "{#NS2#}", "prio" => "0", "ttl" => "3600"),
  9. array("name" => "*.{#DOMAIN#}", "type" => "PTR", "content" => "{#STDPTR#}", "prio" => "0", "ttl" => "3600"));
  10. /* DO NOT EDIT BELOW THIS LINE! */
  11. include_once("./config.inc.php");
  12. $manager = new Manager($config['database']);
  13. function generateIPv6ARPA ($prefix)
  14. {
  15. $prefix = explode("::", $prefix);
  16. $prefix = $prefix[0];
  17. $parts = explode(":", $prefix);
  18. foreach($parts AS $key => $part)
  19. {
  20. while(strlen($part) < 4)
  21. {
  22. $part = '0'.$part;
  23. }
  24. $parts[$key] = $part;
  25. }
  26. $reverse = implode("", $parts);
  27. $arpa = "ip6.arpa";
  28. for($i=0; $i<strlen($reverse); $i++)
  29. {
  30. $char = substr($reverse, $i, 1);
  31. $arpa = $char.'.'.$arpa;
  32. }
  33. return $arpa;
  34. }
  35. $name = generateIPv6ARPA($prefix);
  36. try {
  37. $domainId = $manager->addDomain ($name, '', 0, 'NATIVE', 0, '');
  38. $manager->addZone($domainId, 1, "");
  39. foreach($config['DNS']['templates']['ipv6ptr'] AS $record)
  40. {
  41. $record['name'] = str_replace("{#DOMAIN#}", $name, $record['name']);
  42. $record['content'] = str_replace("{#DOMAIN#}", $name, $record['content']);
  43. $record['content'] = str_replace("{#NS0#}", $config['DNS']['ns0'], $record['content']);
  44. $record['content'] = str_replace("{#NS1#}", $config['DNS']['ns1'], $record['content']);
  45. $record['content'] = str_replace("{#NS2#}", $config['DNS']['ns2'], $record['content']);
  46. $record['content'] = str_replace("{#HOSTMASTER#}", $config['DNS']['hostmaster'], $record['content']);
  47. $record['content'] = str_replace("{#SOACODE#}", $manager->createNewSoaSerial(), $record['content']);
  48. $record['content'] = str_replace("{#STDPTR#}", $stdptr, $record['content']);
  49. $manager->addRecord ($domainId, $record['name'], $record['type'], $record['content'], $record['ttl'], $record['prio'], $record['changeDate']);
  50. }
  51. }catch (Exception $ex)
  52. {
  53. echo $ex->getMessage();
  54. }
  55. ?>