Skip to content

Ipv6 support #231

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Ipv6 support #231

wants to merge 4 commits into from

Conversation

Cobinja
Copy link
Member

@Cobinja Cobinja commented Aug 9, 2025

This adds IPv6 support.

There are several cases:
a) both devices can do both IP versions: IPv4 is used for compatibility
b) one device can only do IPv6: IPv6 is used
c) one device can only use IPv4 and the other can only use IPv6: there's nothing to do, since those devices can't communicate with each other.

@slowscript :
The QR code changes a bit:

On devices with support for IPv4 (example: 192.168.1.10) and IPv6 (example: 2a02::1), the code will look like this:
warpinator://192.168.1.10:42001/ipv6=2a02%3A%3A1 (%3A is ':')

On devices that only use IPv6 but not IPv4, the IPv6 address will be used for the host part in the QR code url:
warpinator://[2a02::1]:42001 (brackets indicate IPv6)

On devices that only use IPv4, the QR code doesn't change.

Cobinja added 3 commits August 4, 2025 16:02
Still missing: manual connection, QR-Code support needs to be changed to accomodate both IP versions (preferrably without breaking existing support
This adds the ability to connect be connected from IPv6 addresses.
This also fixes the way IP addresses are validated on input.

Still currently broken: QR code connection
On devices with support for IPv4 (example: 192.168.1.10) and IPv6 (example: 2a02::1), the code will look like this:
warpinator://192.168.1.10:42001/ipv6=2a02%3A%3A1 (%3A is ':')

On devices that only do IPv6 but not IPv4, the IPv6 address will be used for the host part in the QR code url:
warpinator://[2a02::1]:42001 (brackets indicate IPv6)
@Cobinja Cobinja changed the title [WIP][RFT] Ipv6 support [RFT] Ipv6 support Aug 10, 2025
@Cobinja Cobinja changed the title [RFT] Ipv6 support Ipv6 support Aug 13, 2025
@Cobinja
Copy link
Member Author

Cobinja commented Aug 13, 2025

@slowscript
Sorry, I made a slight mistake in my first comment above.
The QR code data on devices that support both IP versions is:
warpinator://192.168.1.10:42001?ipv6=2a02%3A%3A1 (%3A is ':')
Note the question mark instead of a slash before 'ipv6='

@slowscript
Copy link
Contributor

So I finally found some time to test the manual connection part. Devices that only use IPv6 are not a concern, as they never worked. On devices that use both versions, the Android port works fine (it parses the URL with a built-in method that has full URL support) and just connects on IPv4. The Windows version however does not, it parses the IP string using a regex that only applies to IPv4 addresses and fails with an invalid address error. I will need to fix this in an update, I don't think there is a way to add the functionality and not break it, my mistake. Typing the address manually works as usual. Most Windows and Linux users probably won't be scanning the QR code anyway.

I would suggest to not show the user this very long string (user might think that it is necessary to type all of it)
obrazek
and instead put the two addresses each on a separate line, so the user can choose which to use, e.g.:

192.168.0.10:42001
[2001:abc:def::10]:42001

This splits the shown data for manual connection into two lines, one of which contains the data for IPv4 conenction, the other shows the one for IPv6.
@Cobinja
Copy link
Member Author

Cobinja commented Aug 14, 2025

That's a good idea. Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants