IRC Insomnia Binary Proxy Server Proxy List Digital Cyber Server Links  
Fresh Proxy List
The main lists of Proxies, get all your open Proxies here!

Proxy Forum
More Lists and Proxy Discussion

Proxy Checker
Check if your Proxies work

List Leecher
Use our script to leech Lists from other sites

SwitchProxy
Make Firefox Anonymous the easy way

Judge Me
Is your browser proxy worthy of your use?

Documents
Various documents about Proxies



SOCKS 4A: A Simple Extension to SOCKS 4 Protocol

Ying-Da Lee
yingda@best.com or yingda@esd.sgi.com

Please read SOCKS4.protocol first for an description of the version 4 protocol. This extension is intended to allow the use of SOCKS on hosts which are not capable of resolving all domain names.

In version 4, the client sends the following packet to the SOCKS server to request a CONNECT or a BIND operation:
		+----+----+----+----+----+----+----+----+----+----+....+----+
		| VN | CD | DSTPORT |      DSTIP        | USERID       |NULL|
		+----+----+----+----+----+----+----+----+----+----+....+----+
 # of bytes:	   1    1      2              4           variable       1
VN is the SOCKS protocol version number and should be 4. CD is the SOCKS command code and should be 1 for CONNECT or 2 for BIND. NULL is a byte of all zero bits.

For version 4A, if the client cannot resolve the destination host's domain name to find its IP address, it should set the first three bytes of DSTIP to NULL and the last byte to a non-zero value. (This corresponds to IP address 0.0.0.x, with x nonzero. As decreed by IANA -- The Internet Assigned Numbers Authority -- such an address is inadmissible as a destination IP address and thus should never occur if the client can resolve the domain name.) Following the NULL byte terminating USERID, the client must sends the destination domain name and termiantes it with another NULL byte. This is used for both CONNECT and BIND requests.

A server using protocol 4A must check the DSTIP in the request packet. If it represent address 0.0.0.x with nonzero x, the server must read in the domain name that the client sends in the packet. The server should resolve the domain name and make connection to the destination host if it can.

SOCKSified sockd may pass domain names that it cannot resolve to the next-hop SOCKS server.