Как SOCKS5 использует всего 4 байта для описания хоста и порта?

Я изучаю протокол socks5 и пытаюсь написать свой собственный сервер socks5 на основе TCP, опираясь на документацию RFC 1928 (https://www.rfc-editor.org/rfc/rfc1928). Я использую python для обработки всей сети. Моя цель - проверить весь http-трафик, идущий из моего браузера, и просто перенаправить его туда, куда ему нужно.

Как это происходит до сих пор (байты представлены в виде десятичных чисел):

  1. Клиент просит установить соединение (я настроил свой браузер на использование localhost в качестве сервера SOCKS5): 5 1 0
  2. Я принимаю соединение: 5 0
  3. Ответ клиента: 5 1 0 1 2 19 112 1

Согласно RFC 1928:

          +----+-----+-------+------+----------+----------+
    |VER | CMD |  RSV  | ATYP | DST.ADDR | DST.PORT |
    +----+-----+-------+------+----------+----------+
    | 1  |  1  | X'00' |  1   | Variable |    2     |
    +----+-----+-------+------+----------+----------+

Насколько я понимаю, у меня порт 112 1 (два байта, что нормально), а адрес 2 19 (тоже два байта, что не нормально). Что мне не хватает?

0 ответов

Другие вопросы по тегам