Poproszenie proxy SOCKS o połączenie z nazwą hosta nie jest tym samym co poproszenie go o zwrócenie rekordów DNS tej nazwy.

Proxy może rozwiązać nazwę w ramach ustanawiania żądanego połączenia. Może też przekazać zadanie innemu odpowiedniemu nadrzędnemu serwerowi. Klient otrzymuje odpowiedź SOCKS opisującą wynik połączenia, a nie ogólną odpowiedź DNS.

W przypadku CONNECT powiązany adres i port w odpowiedzi opisują powiązanie po stronie serwera zdefiniowane przez protokół. Nie traktuj BND.ADDR jako obiecanej kopii rozwiązanego adresu IP celu.

Jeśli aplikacja potrzebuje tylko połączenia, może użyć powstałego strumienia, nie wiedząc, który adres docelowy wybrało proxy. Jeśli potrzebuje samych danych DNS, wybierz interfejs faktycznie obsługujący DNS z zamierzonym umiejscowieniem i polityką resolvera.

To rozróżnienie zapobiega też mylącemu sprawdzaniu IP: powiązany adres proxy, adres IP celu i publiczne wyjście widoczne dla witryny to różne wartości. Nie należy nazywać jednego drugim tylko dlatego, że pojawiło się w tym samym uścisku dłoni.

Powiązane artykuły