Avoid fake IPv6 examples

This commit is contained in:
StasonJatham committed 2026-05-21 18:57:45 +02:00
1 parent 03ef2d9af6
commit 9ec3d5c0fb
3 files changed
+41 -12

No files matched your search

+21 -8
View File
@@ -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:
+1 -3
View File
@@ -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>