Recursive Enumerator

using System; using System.Collections.Generic; namespace SecretNest.RecursiveEnumerator {     /// <summary>     /// Get the enumerator for querying the parents of specified item.     /// </summary>     /// <typeparam name="T">Item type</typeparam>     /// <param name="current">Item for querying parents</param>     /// <returns>Enumerator of parents querying</returns>     public delegate IEnumerator<T> GetParentsEnumerator<T>(T current);    

Continue reading

使用Socks5代理连接TCP

虽然Socks5已经不是新技术,最近又有好多人来询问我如何使用Socks5代理来连接远端TCP。在这里我就顺便把之前的流程文件贴来啦。   1 使用TCP连接到Socks5代理服务器端口 2 发送5 2 0 2(4个字节,为Byte而非数字字符,下同) 3 接受到5 0(表示不需要密码,跳转到步骤6)或者5 2(需要密码验证) 4 发送1 UserNameLength(1字节) UserName(1-255字节) PasswordLength(1字节) Password(1-255字节) 5 接受到1 0表示成功,否则失败。 6 如果需要远程解析DNS,那么发送:5 1 0 3 DomainNameLength(1字节) DomainName(1-255字节) Port(2字节)   如果本地解析DNS得IP,那么发送:5 1 0 1 IP(4字节) Port(2字节) 7 可能得到反馈:只要打头是5 0则表示成功,否则表示失败。但是应该完整的清理此数据,它的格式是以下中的一种:   5 0 0 1 IP(4字节) Port(2字节)   5 0

Continue reading