-#!/usr/bin/python
+#!/usr/bin/python3
###############################################################################
# #
# ddns - A dynamic DNS client for IPFire #
subparsers = p.add_subparsers(help=_("Sub-command help"),
dest="subparsers_name")
+ # guess-ip-addresses
+ p_guess_ip_addresses = subparsers.add_parser("guess-ip-addresses",
+ help=_("Guess the external IP addresses"))
+
+ # list-providers
+ p_list_providers = subparsers.add_parser("list-providers",
+ help=_("List all available providers"))
+
+ # list-token-providers
+ p_list_token_provider = subparsers.add_parser("list-token-providers",
+ help=_("List all providers which supports authentication via token"))
+
# update
p_update = subparsers.add_parser("update", help=_("Update DNS record"))
p_update.add_argument("hostname")
d.load_configuration(args.config)
# Handle commands...
- if args.subparsers_name == "update":
+ if args.subparsers_name == "guess-ip-addresses":
+ # IPv6
+ ipv6_address = d.system.guess_external_ip_address("ipv6")
+ if ipv6_address:
+ print("IPv6 Address: %s" % ipv6_address)
+
+ # IPv4
+ ipv4_address = d.system.guess_external_ip_address("ipv4")
+ if ipv4_address:
+ print("IPv4 Address: %s" % ipv4_address)
+
+ elif args.subparsers_name == "list-providers":
+ provider_names = d.get_provider_names()
+ print("\n".join(provider_names))
+
+ elif args.subparsers_name == "list-token-providers":
+ token_provider = d.get_provider_with_token_support()
+ print("\n".join(token_provider))
+
+ elif args.subparsers_name == "update":
d.updateone(hostname=args.hostname, force=args.force)
elif args.subparsers_name == "update-all":