類別 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);
}