В сеансе связи IRC DCC для установления соединения необходимо предоставить IP-адрес и порт другому лицу. Однако как вы справляетесь с этим в мире IPv6?
Я пишу часть платформы IRC бота на Java, поэтому мне нужно уметь справляться с различными ситуациями. Кажется, не существует стандартного способа справиться с этим
Я провел несколько тестов с существующими клиентами по IPv6 (два клиента Teredo подключались к freenode по Ipv6
- Chatzilla в Firefox ничего не отправляет. Это просто действует, как ничего не случилось
- Xchat просто отправляет 0 как IP-адрес, что неверно.
Я знаю, что существуют некоторые расширения протокола DCC, которые отправляют IP-адрес в удобочитаемом формате, но они не являются ни стандартными, ни широко поддерживаемыми. Отправка 0 не выглядит подходящим способом для проверки моего бота на будущее.
Прямо сейчас я конвертирую адрес IPv6 в BigInteger, но на другом конце выясняю, является ли BigInteger адресом IPv4 или IPv6, меня озадачивает (я спрашиваю, как это сделать позже).
TL; DR: Каков подходящий способ обработки DCC в среде IPv6? Должен ли я отправлять 0, не следует ли вообще отправлять что-либо и вызывать в боте исключения, которые не поддерживаются, или отправлять монстра BigInteger?