Une réponse SOCKS n'est pas le résultat d'une requête DNS
Distinguez l'usage d'un nom d'hôte côté proxy d'une API d'interrogation DNS et interprétez correctement l'adresse liée d'un SOCKS CONNECT.
Demander à un proxy SOCKS de se connecter à un nom d'hôte n'est pas la même chose que lui demander de renvoyer les enregistrements DNS de ce nom.
Le proxy peut résoudre le nom dans le cadre de l'établissement de la connexion demandée. Il peut aussi confier la tâche à un autre amont approprié. Le client reçoit une réponse SOCKS décrivant le résultat de la connexion, et non une réponse DNS générale.
Pour CONNECT, l'adresse liée et le port de la réponse décrivent la liaison côté serveur définie par le protocole. Ne traitez pas BND.ADDR comme une copie promise de l'IP résolue de la destination.
Si l'application n'a besoin que de la connexion, elle peut utiliser le flux obtenu sans savoir quelle adresse de destination le proxy a choisie. Si elle a besoin des données DNS elles-mêmes, choisissez une interface réellement capable de DNS avec l'emplacement et la politique de résolveur voulus.
Cette distinction évite aussi un contrôle d'IP trompeur : l'adresse liée du proxy, une IP de destination et la sortie publique vue par le site sont des valeurs différentes. On ne doit pas nommer l'une comme l'autre simplement parce qu'elle est apparue dans la même poignée de main.