Menu

Tree [22958d] main /
 History

HTTPS access


File Date Author Commit
 Qt 2024-01-27 Jerry An Jerry An [22958d] [Qt] Add DNS lookup
 doc 2023-12-30 Jerry An Jerry An [5fcb87] Add missing files
 python 2024-01-27 Jerry An Jerry An [22958d] [Qt] Add DNS lookup
 .gitignore 2023-12-26 Jerry An Jerry An [744009] Add missing files
 CHANGELOG.md 2024-01-27 Jerry An Jerry An [22958d] [Qt] Add DNS lookup
 LICENSE 2023-12-30 Jerry An Jerry An [78a25d] Add LICENSE
 README.md 2024-01-27 Jerry An Jerry An [22958d] [Qt] Add DNS lookup
 config.json 2024-01-07 Jerry An Jerry An [c8745a] Remove dependency on socket.getaddrinfo

Read Me

IP64Bridge: A TCP/UDP packet forwarding tool for IPv6 and IPv4

Use this program to enable IPv6 remote multiplay for games that support only
IPv4 or local LAN connections. It is also possible to customize the port
forwarding/mapping rules.

Quickstart

Server configuration

Prerequisites:
* A publicly accessable IPv6 address
* Firewall rules that allow incoming TCP/UDP traffic on the selected port

Steps:
1. Select the "Host and play" mode
2. Select TCP and/or UDP to match the protocol(s) used by the game (select both
if unsure)
3. Select any source port to be used as the host IPv6 port
4. Set the destination port to match the port used by the game (search online
if unsure)
5. Click "Connect" to start forwarding packets
6. Send IPv6 address and port of host to clients

Server config screenshot

Alternatively, run ip64bridge -h or python3 python/server.py -h to see how
to run this program from command line.

Client configuration

Prerequisites:
* Enabled IPv6 support in OS & router

Steps:
1. Select the "Join via IP" mode
2. Select TCP and/or UDP to match the protocol(s) used by the game (select both
if unsure)
3. Set the source port to match the port used by the game (search online if
unsure)
4. Enter host IPv6 address/port in the destination address/port fields
(support for domain names added in v1.0.0)
5. Click "Connect" to start forwarding packets

If using a domain name as the destination, please be aware that it would only be
resolved once in the beginning. The app would not know about future DNS record
updates.

Client config screenshot

Alternatively, run ip64bridge -h or python3 python/client.py -h to see how
to run this program from command line.

Config file

Support for config files has been added in v0.3.0.
Config files are in json format, like the example below:

{
    "verbosity": 1,
    "gui": false,
    "bridges": [
        {
            "name": "example1",
            "src": "[::]:8888",
            "dst": "127.0.0.1:9999",
            "tcp": true,
            "udp": false
        },
        {
            "name": "example2",
            "src": "0.0.0.0:7777",
            "dst": "[::1]:6666",
            "tcp": true,
            "udp": true
        }
    ]
}

Usage: python3 python/main.py -f config.json, or ip64bridge -f config.json

Roadmap

All features I initially planned have been added as of v1.0.0. Next I will focus
on improving user experience

  • Display helpful messages for both user errors and app bugs
  • (Maybe) a port scanner function to easily find ports used by an app
  • Various customization configs
  • Proper logging (to make debugging easier for me)