Currently gateway address list is used to find non-local ipv6 address to assume ipv6 global connectivity presence. However, those gateway addresses returned by GetAdaptersAddresses() both on Windows and Wine usually have gateway address as link local address Which reflects the actual state of things, inside the local network gateway may be addressed with link local address and I am not sure if that is even possible to address the gateway for packet forwarding using its global ipv6 address. It is route prefix which may be global. Global ipv6 address on local interface, however, can't be assigned arbitrary, that is a part of global routing system and typically assigned by the gateway (which in turn should either have it configured statically or receive the address range from the next router). So if there is no actual ipv6 connectivity the global address is not assigned in the typical configurations. Of course, special configurations are possible when global ipv6 address is configured on host statically, or that it is masqueraded and there is no global address at all, but we are choosing between some heuristics here and the current one just always doesn't report ipv6 internet connectivity for the typical configurations. The exact detection is probably only possible with probing connectivity using some public servers. Windows has netprofm service which reports actual connectivity state apparently based on MS servers availablility. Technically we could implement the same, e. g., somewhere in nsiproxy.sys, but we should not probably use MS or other corporate servers for this purpose, and it is unclear to me what server can we probe for actual detection. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10432#note_133392