DDNS.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Components;
  3. use App\Components\DDNS\Aliyun;
  4. use App\Components\DDNS\Namesilo;
  5. use Log;
  6. /**
  7. * Class DDNS 域名解析
  8. *
  9. * @package App\Components
  10. */
  11. class DDNS
  12. {
  13. /**
  14. * 删除解析记录
  15. *
  16. * @param string $domain 域名
  17. * @param string|null $type
  18. * @return false|int
  19. */
  20. public static function destroy($domain, $type = null)
  21. {
  22. return self::dnsProvider($domain)->destroy($type);
  23. }
  24. private static function dnsProvider($domain)
  25. {
  26. switch (sysConfig('ddns_mode')) {
  27. case 'aliyun':
  28. return (new Aliyun($domain));
  29. case 'namesilo':
  30. return new Namesilo($domain);
  31. default:
  32. Log::error("未知渠道:".sysConfig('ddns_mode'));
  33. return false;
  34. }
  35. }
  36. /**
  37. * 修改解析记录
  38. *
  39. * @param string $domain 域名
  40. * @param string $ip ip地址
  41. * @param string $type 记录类型,默认为 A
  42. * @return void
  43. */
  44. public static function update($domain, $ip, $type = 'A')
  45. {
  46. return self::dnsProvider($domain)->update($ip, $type);
  47. }
  48. /**
  49. * 添加解析记录
  50. *
  51. * @param string $domain 域名
  52. * @param string $ip ip地址
  53. * @param string $type 记录类型,默认为 A
  54. * @return void
  55. */
  56. public static function store($domain, $ip, $type = 'A')
  57. {
  58. return self::dnsProvider($domain)->store($ip, $type);
  59. }
  60. }