类 SOCKSSocket
SOCKS 是一种互联网协议,它通过代理服务器在客户端和服务器之间路由数据包。SOCKS5(如果支持)还提供身份验证,因此只有授权用户才能访问服务器。
公共类方法
new(host, port) → socket 点击切换源代码
通过 SOCKS 服务器打开到 host
的 SOCKS 连接。
SOCKS 服务器配置因实现而异
使用 Dante libsocks/libsocksd 实现时,它被配置为 SOCKS_SERVER 环境变量。
参见:manpages.debian.org/testing/dante-client/socksify.1.en.html 以获取完整的环境变量支持。
static VALUE socks_init(VALUE sock, VALUE host, VALUE port) { static int init = 0; if (init == 0) { SOCKSinit("ruby"); init = 1; } return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil, Qnil); }
new(host, serv) 点击切换源代码
# File lib/resolv-replace.rb, line 73 def initialize(host, serv) original_resolv_initialize(IPSocket.getaddress(host), port) end
公共实例方法
close() 点击切换源代码
关闭 SOCKS 连接。
static VALUE socks_s_close(VALUE sock) { rb_io_t *fptr; GetOpenFile(sock, fptr); shutdown(fptr->fd, 2); return rb_io_close(sock); }