Ответ SOCKS — не результат DNS-запроса
Отличайте использование имени хоста на стороне прокси от API DNS-запросов и правильно интерпретируйте привязанный адрес в SOCKS CONNECT.
Попросить SOCKS-прокси подключиться к имени хоста — не то же самое, что попросить его вернуть DNS-записи этого имени.
Прокси может разрешить имя в процессе установки запрошенного соединения. Он также может передать задачу другому подходящему вышестоящему узлу. Клиент получает ответ SOCKS, описывающий результат соединения, а не общий ответ DNS.
Для CONNECT привязанные адрес и порт в ответе описывают привязку на стороне сервера, определённую протоколом. Не рассматривайте BND.ADDR как обещанную копию разрешённого IP-адреса назначения.
Если приложению нужно только соединение, оно может использовать полученный поток, не зная, какой адрес назначения выбрал прокси. Если же нужны сами данные DNS, выберите по-настоящему поддерживающий DNS интерфейс с нужным расположением и политикой резолвера.
Это различие также предотвращает вводящую в заблуждение проверку IP: привязанный адрес прокси, IP-адрес назначения и публичный выход, видимый сайту — это разные значения. Не следует называть одно другим только потому, что оно появилось в том же рукопожатии.