SOCKS5 請求階段結構定義與常見 IPv4 地址構造示例,為後續連接、綁定、UDP 關聯命令奠定基礎。
0x05。0x01=CONNECT, 0x02=BIND, 0x03=UDP ASSOCIATE。0x00。0x01=IPv4, 0x03=域名, 0x04=IPv6)。0x01 IPv4:4 字節固定長度。0x03 域名:首字節為長度,後跟域名字節,無結尾 NULL。0x04 IPv6:16 字節固定長度。IPEndPoint destIP = new IPEndPoint(IPAddress.Parse("192.168.1.2"), 80);
byte[] data = new byte[10];
data[0] = 5; data[1] = 1; data[2] = 0; data[3] = 1; // VER, CMD, RSV, ATYP
Array.Copy(destIP.Address.GetAddressBytes(), 0, data, 4, 4); // IP 4 字節
Array.Copy(BitConverter.GetBytes(IPAddress.HostToNetworkOrder((short)destIP.Port)), 0, data, 8, 2); // Port 2 字節
上述代碼生成標準 SOCKS5 CONNECT 請求包,可直接發送給代理服務器。