Archived
Avoid fake IPv6 examples
This commit is contained in:
1 parent
03ef2d9af6
commit
9ec3d5c0fb
3 files changed
+41
-12
No files matched your search
@@ -143,14 +143,27 @@ def _example_update_ips(request_ip: str | None = None) -> tuple[str, str]:
|
||||
|
||||
def _manual_update_commands(update_url: str, request_ip: str | None = None) -> str:
|
||||
update_base = update_url.split("?", 1)[0]
|
||||
ipv4, ipv6 = _example_update_ips(request_ip)
|
||||
return "\n".join(
|
||||
[
|
||||
f"curl -sS '{update_base}?myip={ipv4}'",
|
||||
f"curl -sS '{update_base}?myipv6={ipv6}'",
|
||||
f"curl -sS '{update_base}' # use request IP",
|
||||
]
|
||||
)
|
||||
request_version, request_address = _known_request_ip(request_ip)
|
||||
lines = []
|
||||
if request_version in {None, 4}:
|
||||
ipv4, _ = _example_update_ips(request_ip)
|
||||
lines.append(f"curl -sS '{update_base}?myip={ipv4}'")
|
||||
if request_version == 6:
|
||||
lines.append(f"curl -sS '{update_base}?myipv6={request_address}'")
|
||||
lines.append(f"curl -sS '{update_base}' # use request IP")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def _known_request_ip(request_ip: str | None = None) -> tuple[int | None, str]:
|
||||
if not request_ip:
|
||||
return None, ""
|
||||
try:
|
||||
parsed = ip_address(request_ip.strip())
|
||||
except ValueError:
|
||||
return None, ""
|
||||
if not parsed.is_global:
|
||||
return None, ""
|
||||
return parsed.version, str(parsed)
|
||||
|
||||
|
||||
def _manual_update_panel(commands: str) -> SafeHtml:
|
||||
|
||||
@@ -7,7 +7,6 @@ from .components import (
|
||||
_copy_menu,
|
||||
_copy_row,
|
||||
_event_label,
|
||||
_example_update_ips,
|
||||
_fritzbox_fields,
|
||||
_manual_update_commands,
|
||||
_manual_update_panel,
|
||||
@@ -168,7 +167,6 @@ def _render_pending_management_page(
|
||||
cleanup_hours = settings.cleanup_pending_account_hours
|
||||
cleanup_text = f"{cleanup_hours} hours" if cleanup_hours != 24 else "24 hours"
|
||||
manual_commands = _manual_update_commands(update_url, request_ip)
|
||||
example_ipv4, example_ipv6 = _example_update_ips(request_ip)
|
||||
return _page(
|
||||
"KarlDNS setup",
|
||||
trusted(f"""
|
||||
@@ -211,7 +209,7 @@ def _render_pending_management_page(
|
||||
</div>
|
||||
<div>
|
||||
<h2>Manual updates.</h2>
|
||||
<p class="section-copy">Scripts can send the IP explicitly, or omit it and let KarlDNS use the request IP. Your current public examples use <code>{escape(example_ipv4)}</code> and <code>{escape(example_ipv6)}</code> where available.</p>
|
||||
<p class="section-copy">Scripts can send the IP explicitly, or omit it and let KarlDNS use the request IP. Visible examples use your public IP when KarlDNS or your browser can detect it.</p>
|
||||
{_code_window(manual_commands, copy_label="manual update commands", class_name="mt-3")}
|
||||
</div>
|
||||
<div>
|
||||
|
||||
Reference in new issue
Block a user