Я создаю FTP-сервер. Согласно спецификациям FTP они добавили новую команду под названием LPRT.Как получить IPv6 из команды LPRT ftp
Его формат LPRT 6,16,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,193,160
сейчас Я могу получить FTP-порт из него, используя логику ниже. Но мне нужен адрес IPV6 также из этой строки.
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer(
"6,16,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,193,160");
final String portStr = st.nextToken();
final int lastDelimIdx =portStr.lastIndexOf(',', portStr.lastIndexOf(',') - 1);
final StringTokenizer portst = new StringTokenizer(portStr.substring(lastDelimIdx + 1, portStr.length()), ",");
final int p1 = Integer.parseInt(portst.nextToken());
final int p2 = Integer.parseInt(portst.nextToken());
final int dataPort = (p1 << 8) | p2;
System.out.println(dataPort);
}
Может кто-нибудь помочь мне найти адрес IPv6 из этой строки.
Да, вы правы, но наша реализация говорит, что если EPRT терпит неудачу, то используйте LPRT, поэтому мы должны использовать его –
Я проверил эту ссылку, но к сожалению, я не нашел, как они представляют IPv6 в формате –
@ShowStopper: Я думаю, что это совершенно ясно, но см. пример в редактируемом вопросе. –