socket.getfqdn() returns *.localdomain names that other machines on the same LAN (especially cross-OS) cannot resolve via DNS. When the node is bound to 0.0.0.0 and --advertise-host is not given, probe the outbound IP by connecting a UDP socket toward the tracker — this picks the correct interface IP without sending any data. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>