ライブラリ
- ビルトイン (5)
-
drb
/ acl (1) - ipaddr (1)
-
net
/ ftp (1) - openssl (34)
- pathname (1)
- resolv-replace (3)
- socket (132)
-
webrick
/ https (1)
クラス
- ACL (1)
- Addrinfo (46)
- Array (2)
- BasicSocket (19)
-
File
:: Stat (2) - IPAddr (1)
- IPSocket (3)
-
Net
:: FTP (1) -
OpenSSL
:: SSL :: SSLServer (2) -
OpenSSL
:: SSL :: SSLSocket (25) - Pathname (1)
- SOCKSSocket (1)
- Socket (10)
-
Socket
:: AncillaryData (12) -
Socket
:: Ifaddr (9) -
Socket
:: Option (9) -
Socket
:: UDPSource (3) - String (1)
- TCPServer (4)
- UDPSocket (9)
- UNIXServer (4)
- UNIXSocket (6)
-
WEBrick
:: HTTPRequest (1)
モジュール
キーワード
- accept (5)
-
accept
_ nonblock (4) - addr (4)
- afamily (1)
-
allow
_ socket? (1) - bind (5)
- bool (1)
- broadaddr (1)
- canonname (1)
- cert (1)
- cipher (1)
- close (1)
- closed? (1)
-
cmsg
_ is? (1) - connect (6)
-
connect
_ address (1) -
connect
_ from (2) -
connect
_ nonblock (2) -
connect
_ to (2) - context (1)
- data (2)
-
do
_ not _ reverse _ lookup (1) -
do
_ not _ reverse _ lookup= (2) - dstaddr (1)
- family (3)
-
family
_ addrinfo (2) - fcntl (1)
- flags (1)
- ftype (1)
- getnameinfo (1)
- getpeereid (1)
- getpeername (1)
- getsockname (1)
- getsockopt (2)
- hostname (1)
- hostname= (1)
- ifindex (1)
- inspect (1)
-
inspect
_ sockaddr (1) - int (2)
- io (1)
- ip? (1)
-
ip
_ address (1) -
ip
_ pktinfo (1) -
ip
_ port (1) -
ip
_ unpack (1) - ipv4? (1)
-
ipv4
_ loopback? (1) -
ipv4
_ multicast? (1) -
ipv4
_ private? (1) - ipv6? (1)
-
ipv6
_ linklocal? (1) -
ipv6
_ loopback? (1) -
ipv6
_ mc _ global? (1) -
ipv6
_ mc _ linklocal? (1) -
ipv6
_ mc _ nodelocal? (1) -
ipv6
_ mc _ orglocal? (1) -
ipv6
_ mc _ sitelocal? (1) -
ipv6
_ multicast? (1) -
ipv6
_ pktinfo (1) -
ipv6
_ pktinfo _ addr (1) -
ipv6
_ pktinfo _ ifindex (1) -
ipv6
_ sitelocal? (1) -
ipv6
_ to _ ipv4 (1) -
ipv6
_ unique _ local? (1) -
ipv6
_ unspecified? (1) -
ipv6
_ v4compat? (1) -
ipv6
_ v4mapped? (1) - ipv6only! (1)
- level (2)
- linger (1)
- listen (5)
-
local
_ address (2) - name (1)
- netmask (1)
- optname (1)
- pack (2)
- parse (1)
- path (1)
-
peer
_ cert (1) -
peer
_ cert _ chain (1) - peeraddr (3)
- pending (1)
- pfamily (1)
-
post
_ connection _ check (1) - protocol (1)
- recv (1)
-
recv
_ io (1) -
recv
_ nonblock (1) - recvfrom (3)
-
recvfrom
_ nonblock (2) - recvmsg (1)
-
recvmsg
_ nonblock (1) -
remote
_ address (2) - reply (1)
- send (5)
-
send
_ io (1) - sendmsg (1)
-
sendmsg
_ nonblock (1) - session (1)
- session= (1)
-
session
_ reused? (1) -
set
_ socket (1) - setsockopt (3)
- shutdown (2)
- socket? (2)
- socktype (1)
- state (1)
-
sync
_ close (1) -
sync
_ close= (1) - sysaccept (3)
- sysclose (1)
- sysread (1)
- syswrite (1)
-
to
_ io (1) -
to
_ s (2) -
to
_ sockaddr (1) - type (1)
- unix? (1)
-
unix
_ path (1) -
unix
_ rights (1) - unpack (2)
-
verify
_ result (1) - vhid (1)
検索結果
先頭5件
-
Addrinfo
# family _ addrinfo(path) -> Addrinfo (24040.0) -
引数から自身に「似た」Addrinfo オブジェクトを生成します。
引数から自身に「似た」Addrinfo オブジェクトを生成します。
「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。
require 'socket'
Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>
Addrinfo.unix("/tmp/sock").family_addrinfo("/tmp/sock2")... -
Addrinfo
# pfamily -> Integer (24040.0) -
プロトコルファミリーを整数で返します。
プロトコルファミリーを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).pfamily == Socket::PF_INET #=> true -
Addrinfo
# protocol -> Integer (24040.0) -
ソケットプロトコルを整数で返します。
ソケットプロトコルを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).protocol == Socket::IPPROTO_TCP #=> true -
Addrinfo
# socktype -> Integer (24040.0) -
ソケットタイプを整数で返します。
ソケットタイプを整数で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).socktype == Socket::SOCK_STREAM #=> true -
Addrinfo
# inspect _ sockaddr -> String (24022.0) -
アドレスやポート番号などの情報を人間に読める形の文字列で返します。
アドレスやポート番号などの情報を人間に読める形の文字列で返します。
require 'socket'
Addrinfo.tcp("localhost", 80).inspect_sockaddr #=> "127.0.0.1:80"
Addrinfo.tcp("ip6-localhost", 80).inspect_sockaddr #=> "[::1]:80"
Addrinfo.unix("/tmp/sock").inspect_sockaddr #=> "/tmp/sock" -
Addrinfo
# ip? -> bool (24022.0) -
アドレスが IP (v4/v6) のものならば true を返します。
アドレスが IP (v4/v6) のものならば true を返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip? #=> true
Addrinfo.tcp("::1", 80).ip? #=> true
Addrinfo.unix("/tmp/sock").ip? #=> false
@see Addrinfo#ipv4?, Addrinfo#ipv6?, Addrinfo#unix? -
Addrinfo
# ip _ address -> String (24022.0) -
IP アドレスを文字列で返します。
IP アドレスを文字列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_address #=> "127.0.0.1"
Addrinfo.tcp("::1", 80).ip_address #=> "::1"
@see Addrinfo#ip_port, Addrinfo#ip_unpack -
Addrinfo
# ip _ port -> Integer (24022.0) -
ポート番号を整数で返します。
ポート番号を整数で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_port #=> 80
Addrinfo.tcp("::1", 80).ip_port #=> 80
@see Addrinfo#ip_address, Addrinfo#ip_unpack -
Addrinfo
# ip _ unpack -> [String , Integer] (24022.0) -
IP アドレスとポート番号を 2 要素の配列で返します。
IP アドレスとポート番号を 2 要素の配列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_unpack #=> ["127.0.0.1", 80]
Addrinfo.tcp("::1", 80).ip_unpack #=> ["::1", 80]
@see Addrinfo#ip_address, Addrinfo#ip_port -
Addrinfo
# ipv4? -> bool (24022.0) -
アドレスが IPv4 のものならば true を返します。
アドレスが IPv4 のものならば true を返します。
@see Addrinfo#ip?, Addrinfo#ipv6?
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ipv4? #=> true
Addrinfo.tcp("::1", 80).ipv4? #=> false
Addrinfo.unix("/tmp/sock").ipv4? #=> false -
Addrinfo
# ipv6? -> bool (24022.0) -
アドレスが IPv6 のものならば true を返します。
アドレスが IPv6 のものならば true を返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ipv6? #=> false
Addrinfo.tcp("::1", 80).ipv6? #=> true
Addrinfo.unix("/tmp/sock").ipv6? #=> false
@see Addrinfo#ipv4?, Addrinfo#ip? -
Addrinfo
# ipv6 _ to _ ipv4 -> Addrinfo|nil (24022.0) -
IPv6 の v4 マップド/互換アドレスを v4 のアドレスに変換します。
IPv6 の v4 マップド/互換アドレスを v4 のアドレスに変換します。
それ以外のアドレスの場合 nil を返します。
require 'socket'
Addrinfo.ip("::192.0.2.3").ipv6_to_ipv4 #=> #<Addrinfo: 192.0.2.3>
Addrinfo.ip("::ffff:192.0.2.3").ipv6_to_ipv4 #=> #<Addrinfo: 192.0.2.3>
Addrinfo.ip("::1").ipv6_to_ipv4 #=> nil
Addrinfo.i... -
Addrinfo
# to _ s -> String (24022.0) -
struct sockaddr をパックした形式の文字列に変換します。
struct sockaddr をパックした形式の文字列に変換します。
require 'socket'
Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00" -
Addrinfo
# to _ sockaddr -> String (24022.0) -
struct sockaddr をパックした形式の文字列に変換します。
struct sockaddr をパックした形式の文字列に変換します。
require 'socket'
Addrinfo.tcp("localhost", 80).to_sockaddr
#=> "\x02\x00\x00P\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00" -
TCPServer
# sysaccept -> Integer (24022.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
} -
UNIXServer
# sysaccept -> Integer (24022.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば UNIXServer#accept と同じです。
接続したクライアントのソケットをファイル記述子で返すことを除けば
UNIXServer#accept と同じです。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p serv.sysaccept #=> 6
} -
Addrinfo
# ipv4 _ loopback? -> bool (24004.0) -
IPv4 のループバックアドレス(127.0.0.0/8) であれば真を返します。
IPv4 のループバックアドレス(127.0.0.0/8) であれば真を返します。
@see Addrinfo#ipv6_loopback? -
Addrinfo
# ipv4 _ multicast? -> bool (24004.0) -
IPv4 のマルチキャストアドレス(224.0.0.0/4)であれば真を返します。
IPv4 のマルチキャストアドレス(224.0.0.0/4)であれば真を返します。 -
Addrinfo
# ipv4 _ private? -> bool (24004.0) -
IPv4 のプライベートアドレス(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) であれば真を返します。
IPv4 のプライベートアドレス(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
であれば真を返します。 -
Addrinfo
# ipv6 _ linklocal? -> bool (24004.0) -
IPv6 のリンクローカルアドレス(fe80::/10, 4291)であれば真を返します。
IPv6 のリンクローカルアドレス(fe80::/10, 4291)であれば真を返します。 -
Addrinfo
# ipv6 _ loopback? -> bool (24004.0) -
IPv6 のループバックアドレス(::1)であれば真を返します。
IPv6 のループバックアドレス(::1)であれば真を返します。
@see Addrinfo#ipv4_loopback? -
Addrinfo
# ipv6 _ mc _ global? -> bool (24004.0) -
IPv6 のマルチキャスト(グローバルスコープ) アドレスであれば真を返します。
IPv6 のマルチキャスト(グローバルスコープ)
アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ mc _ linklocal? -> bool (24004.0) -
IPv6 のマルチキャスト(リンクローカルスコープ)アドレスであれば真を返します。
IPv6 のマルチキャスト(リンクローカルスコープ)アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ mc _ nodelocal? -> bool (24004.0) -
IPv6 のマルチキャスト(ノードローカルスコープ)アドレスであれば真を返します。
IPv6 のマルチキャスト(ノードローカルスコープ)アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ mc _ orglocal? -> bool (24004.0) -
IPv6 のマルチキャスト(組織(organization)ローカルスコープ) アドレスであれば真を返します。
IPv6 のマルチキャスト(組織(organization)ローカルスコープ)
アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ mc _ sitelocal? -> bool (24004.0) -
IPv6 のマルチキャスト(サイトローカルスコープ)アドレスであれば真を返します。
IPv6 のマルチキャスト(サイトローカルスコープ)アドレスであれば真を返します。 -
Addrinfo
# ipv6 _ multicast? -> bool (24004.0) -
IPv6 のマルチキャストアドレス(ff00::/8)であれば真を返します。
IPv6 のマルチキャストアドレス(ff00::/8)であれば真を返します。 -
Addrinfo
# ipv6 _ sitelocal? -> bool (24004.0) -
IPv6 のサイトローカルアドレス(fec0::/10, 3513)であれば真を返します。
IPv6 のサイトローカルアドレス(fec0::/10, 3513)であれば真を返します。 -
Addrinfo
# ipv6 _ unique _ local? -> bool (24004.0) -
IPv6 のユニークローカルアドレス(fc00::/7, 4193)であれば真を返します。
IPv6 のユニークローカルアドレス(fc00::/7, 4193)であれば真を返します。 -
Addrinfo
# ipv6 _ unspecified? -> bool (24004.0) -
IPv6 の不特定アドレス(unspecified address)(::)であれば真を返します。
IPv6 の不特定アドレス(unspecified address)(::)であれば真を返します。 -
Addrinfo
# ipv6 _ v4compat? -> bool (24004.0) -
IPv6 の v4互換アドレス(::/80)であれば真を返します。
IPv6 の v4互換アドレス(::/80)であれば真を返します。 -
Addrinfo
# ipv6 _ v4mapped? -> bool (24004.0) -
IPv6 の v4にマップされたアドレス(::ffff:0:0/80)であれば真を返します。
IPv6 の v4にマップされたアドレス(::ffff:0:0/80)であれば真を返します。 -
Pathname
# socket? -> bool (18373.0) -
FileTest.socket?(self.to_s) と同じです。
FileTest.socket?(self.to_s) と同じです。
@see FileTest.#socket? -
File
:: Stat # socket? -> bool (18325.0) -
ソケットの時に真を返します。
ソケットの時に真を返します。
//emlist[][ruby]{
Dir.glob("/tmp/*"){|file|
if File::Stat.new(file).socket?
printf "%s\n", file
end
}
#例
#=> /tmp/uimhelper-hogehoge
#...
//} -
Net
:: FTP # set _ socket(sock , get _ greeting = true) -> nil (18325.0) -
FTP のコントロール接続の ソケットを TCPSocket オブジェクト sock に設定します。
FTP のコントロール接続の
ソケットを TCPSocket オブジェクト sock に設定します。
get_greeting に偽が与えられると、
set_socket は通信先を設定するだけで sock に対する操作を
何も行ないません。
get_greeting が真ならば、通信先を sock に
設定したあと、通常FTPサーバが接続時に送ってくるメッセージを読み込みます。
通常このメソッドは使うべきではありません。このライブラリの
実装を理解した上で必要な場合のみ利用してください。
@param sock コントロール接続に使うソケットを指定します。
@param get_gre... -
ACL
# allow _ socket?(soc) -> bool (18307.0) -
ソケットに関連付けられたアドレスが ACL で許可されているならば 真を返します。
ソケットに関連付けられたアドレスが ACL で許可されているならば
真を返します。
@param soc 判定対象のソケット -
OpenSSL
:: SSL :: SSLSocket # accept -> self (9004.0) -
TLS/SSL 通信をサーバモードとして開始し、クライアントからの ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
TLS/SSL 通信をサーバモードとして開始し、クライアントからの
ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#connect,
OpenSSL::SSL::SSLSocket#accept_nonblock -
OpenSSL
:: SSL :: SSLSocket # accept _ nonblock -> self (9004.0) -
ノンブロッキング方式で TLS/SSL 通信をサーバモードとして開始し、 クライアントとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をサーバモードとして開始し、
クライアントとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
(実際は OpenSSL::S... -
OpenSSL
:: SSL :: SSLSocket # cert -> OpenSSL :: X509 :: Certificate | nil (9004.0) -
自分自身を証明する証明書を返します。
自分自身を証明する証明書を返します。
自分自身を証明する証明書を使わなかった場合は nil を返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼んだ
場合も nil を返します。
@see OpenSSL::SSL::SSLContext#cert -
OpenSSL
:: SSL :: SSLSocket # cipher -> [String , String , Integer , Integer] (9004.0) -
現在実際に使われている暗号の情報を配列で返します。
現在実際に使われている暗号の情報を配列で返します。
返される配列の形式は以下の例のように [暗号名, TLS/SSLのバージョン, 鍵長, アルゴリズムで使われる bit 数] となります。
["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。 -
OpenSSL
:: SSL :: SSLSocket # connect -> self (9004.0) -
TLS/SSl 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
TLS/SSl 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#accept,
OpenSSL::SSL::SSLSocket#connect_nonblock -
OpenSSL
:: SSL :: SSLSocket # connect _ nonblock -> self (9004.0) -
ノンブロッキング方式で TLS/SSL 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@raise OpenSSL::SSL::S... -
OpenSSL
:: SSL :: SSLSocket # context -> OpenSSL :: SSL :: SSLContext (9004.0) -
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # hostname -> String | nil (9004.0) -
TLS の Server Name Indication 拡張で利用するサーバのホスト名を返します。
TLS の Server Name Indication 拡張で利用するサーバのホスト名を返します。
OpenSSL::SSL::SSLSocket#hostname= で設定した値がそのまま返されます。
設定していない場合は nil を返します。
@see OpenSSL::SSL::SSLSocket#hostname= -
OpenSSL
:: SSL :: SSLSocket # hostname=(hostname) (9004.0) -
TLS の Server Name Indication(SNI) 拡張で利用するサーバのホスト名を設定します。
TLS の Server Name Indication(SNI) 拡張で利用するサーバのホスト名を設定します。
Server Name Indication については 3546 を参照してください。
このメソッドはハンドシェイク時にクライアント側がサーバ側に
サーバのホスト名を伝えるために用います。そのため、
クライアント側が OpenSSL::SSL::SSLSocket#connect を呼ぶ前に
このメソッドでホスト名を指定する必要があります。
hostname に nil を渡すと SNI 拡張を利用しません。
サーバ側については OpenSSL::SSL::SSLCont... -
OpenSSL
:: SSL :: SSLSocket # io -> IO (9004.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # peer _ cert -> OpenSSL :: X509 :: Certificate | nil (9004.0) -
接続相手の証明書オブジェクトを返します。
接続相手の証明書オブジェクトを返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
@see OpenSSL::SSL::SSLSocket#peer_cert_chain -
OpenSSL
:: SSL :: SSLSocket # peer _ cert _ chain -> [OpenSSL :: X509 :: Certificate] | nil (9004.0) -
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト の配列で返します。
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト
の配列で返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
以下の順の配列を返します。
[接続相手の証明書, 下位CAの証明書,... 中間CAの証明書]
ルート CA の証明書は含まれないことに注意してください。
@see OpenSSL::SSL::SSLSocket#peer_cert -
OpenSSL
:: SSL :: SSLSocket # pending -> Integer | nil (9004.0) -
OpenSSL内部のバッファが保持している、直ちに読み取り可能な データのバイト数を返します。
OpenSSL内部のバッファが保持している、直ちに読み取り可能な
データのバイト数を返します。
ハンドシェイク開始前には nil を返します。 -
OpenSSL
:: SSL :: SSLSocket # post _ connection _ check(hostname) -> true (9004.0) -
接続後検証を行います。
接続後検証を行います。
検証に成功した場合は true を返し、失敗した場合は例外
OpenSSL::SSL::SSLError を発生させます。
OpenSSL の API では、
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
での検証は実用的には不完全です。
CA が証明書に署名してそれが失効していないことしか確認しません。
実用上は証明書に記載されている事項を見て、接続先が妥当であるかを確認する
必要があります。通常は接続先ホストの FQDN と証明書に記載されている FQDN が
一致しているか... -
OpenSSL
:: SSL :: SSLSocket # session -> OpenSSL :: SSL :: Session (9004.0) -
利用している SSL セッションを OpenSSL::SSL::Session オブジェクトで返します。
利用している SSL セッションを OpenSSL::SSL::Session
オブジェクトで返します。
@see OpenSSL::SSL::SSLSocket#session=,
OpenSSL::SSL::SSLSocket#session_reused? -
OpenSSL
:: SSL :: SSLSocket # session=(sess) (9004.0) -
ハンドシェイクで再利用する SSL セッションを 設定します。
ハンドシェイクで再利用する SSL セッションを
設定します。
このメソッドはクライアント側でのみ有用です。
セッションを再利用する場合は、
OpenSSL::SSL::SSLSocket#connect を呼ぶ前に
このメソッドでセッションオブジェクト
(OpenSSL::SSL::Session のインスタンス)
を設定します。
サーバ側の場合 OpenSSL::SSL::SSLContext がキャッシュの保持と
管理を行います。
@param sess 設定するセッション
@see OpenSSL::SSL::SSLSocket#session,
OpenSSL::SS... -
OpenSSL
:: SSL :: SSLSocket # session _ reused? -> bool (9004.0) -
利用している SSL セッションが再利用されたものである 場合に真を返します。
利用している SSL セッションが再利用されたものである
場合に真を返します。
@see OpenSSL::SSL::Session,
OpenSSL::SSL::SSLSocket#session,
OpenSSL::SSL::SSLSocket#session= -
OpenSSL
:: SSL :: SSLSocket # state -> String (9004.0) -
現在の状態をアルファベット 6 文字の文字列で返します。
現在の状態をアルファベット 6 文字の文字列で返します。 -
OpenSSL
:: SSL :: SSLSocket # sync _ close -> bool (9004.0) -
SSLSocket を close するときにラップしているソケットも close するかどうかを 返します。
SSLSocket を close するときにラップしているソケットも close するかどうかを
返します。
true でソケットも close します。 -
OpenSSL
:: SSL :: SSLSocket # sync _ close=(bool) (9004.0) -
SSLSocket を close するときにラップしているソケットも close するかどうかを 設定します。
SSLSocket を close するときにラップしているソケットも close するかどうかを
設定します。
true でソケットも close するようになります。
@param bool 設定する真偽値 -
OpenSSL
:: SSL :: SSLSocket # sysclose -> nil (9004.0) -
接続を閉じます。相手に'close notify'を送ります。
接続を閉じます。相手に'close notify'を送ります。
このメソッドは openssl ライブラリ内で管理しているバッファを
フラッシュせずに接続を閉じます。そのため、通常は
これではなく OpenSSL::Buffering#close を呼ぶべきです。
OpenSSL::SSL::SSLSocket#sync_close が真である場合は
このメソッドを呼びだした時点で自身が保持しているソケット
を同時に閉じます。 -
OpenSSL
:: SSL :: SSLSocket # sysread(length , buf=nil) -> String (9004.0) -
データをバッファを経由せずに暗号化通信路から読み込み、 読み込んだデータを文字列で返します。
データをバッファを経由せずに暗号化通信路から読み込み、
読み込んだデータを文字列で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを読み込むべきです。
length で読み込むバイト数を指定します。
bufに文字列を指定するとその文字列のメモリ領域にデータを直接書き込み、
その String オブジェクトを返します。
IO#sysread と同様です。
@param length 読み込むバイト数を指定します
@param buf データを書き込むバッファ
@raise EOFError 入力が終端に逹した場合に発生します
... -
OpenSSL
:: SSL :: SSLSocket # syswrite(string) -> Integer (9004.0) -
データをバッファを経由せずに暗号化通信路に書き込みます。
データをバッファを経由せずに暗号化通信路に書き込みます。
書き込んだバイト数を整数で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを書き込むべきです。
IO#syswrite と同様です。
@param string 書き込むデータ文字列
@raise OpenSSL::SSL::SSLError 書き込みに失敗した場合に発生します -
OpenSSL
:: SSL :: SSLSocket # to _ io -> IO (9004.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # verify _ result -> Integer (9004.0) -
検証結果のエラーコードを整数値で返します。
検証結果のエラーコードを整数値で返します。
エラーコードの整数値は OpenSSL::X509 に定数が定義されています。
詳しくは c:OpenSSL::X509#verify_error を見てください。
検証に成功した場合は OpenSSL::X509::V_OK を返します。 -
OpenSSL
:: SSL :: SocketForwarder # addr -> Array (9004.0) -
ラップされているソケットの接続情報を返します。
ラップされているソケットの接続情報を返します。
IPSocket#addr と同様です。 -
OpenSSL
:: SSL :: SocketForwarder # closed? -> bool (9004.0) -
ラップされているソケットが close していたら true を返します。
ラップされているソケットが
close していたら true を返します。 -
OpenSSL
:: SSL :: SocketForwarder # do _ not _ reverse _ lookup=(bool) (9004.0) -
真を渡すとアドレスからホスト名への逆引きを行わなくなります。
真を渡すとアドレスからホスト名への逆引きを行わなくなります。
BasicSocket#do_not_reverse_lookup と同様です。
@param bool 真で逆引きを抑制します -
OpenSSL
:: SSL :: SocketForwarder # fcntl(cmd , arg=0) -> Integer (9004.0) -
ラップされているソケットに対してシステムコール fcntl を実行します。
ラップされているソケットに対してシステムコール fcntl を実行します。
IO#fcntl と同様です。
@param cmd IO に対するコマンドを、添付ライブラリ fcntl が提供している定数で指定します。
@param arg cmd に対する引数を整数、文字列、booleanのいずれかで指定します。
@raise Errno::EXXX fcntl の実行に失敗した場合に発生します。
@raise IOError 既に close されている場合に発生します。 -
OpenSSL
:: SSL :: SocketForwarder # getsockopt(level , optname) -> String (9004.0) -
ラップされているソケットのオプションを設定します。
ラップされているソケットのオプションを設定します。
BasicSocket#getsockopt と同様です。
@param level getsockopt(2) の 第二引数のlevel に相当する整数を指定します
@param optname getsockopt(2) の 第三引数のoption_name に相当する整数を指定します -
OpenSSL
:: SSL :: SocketForwarder # peeraddr -> Array (9004.0) -
ラップされているソケットの接続先相手の情報を返します。
ラップされているソケットの接続先相手の情報を返します。
IPSocket#peeraddr と同様です。 -
OpenSSL
:: SSL :: SocketForwarder # setsockopt(level , optname , optval) -> 0 (9004.0) -
ラップされているソケットのオプションを設定します。
ラップされているソケットのオプションを設定します。
BasicSocket#setsockopt と同様です。
@param level setsockopt(2) の level に相当する整数を指定します
@param optname setsockopt(2) の option_name に相当する整数を指定します
@param optval 設定される値を文字列で指定します。
@raise Errno::EXXX オプションの設定に失敗した場合発生します。 -
UDPSocket
# bind(host , port) -> Integer (9004.0) -
UDPSocket#bindのパラメータ host の名前解決に resolv ライブラリを使います。
UDPSocket#bindのパラメータ host の名前解決に resolv
ライブラリを使います。
@param host bindするホスト名を文字列で指定します。
@param port bindするポートを指定します。
@raise SocketError 名前解決に失敗した場合に発生します。 -
UDPSocket
# connect(host , port) -> Integer (9004.0) -
UDPSocket#connect のパラメータ host の名前解決に resolv ライブラリを使います。
UDPSocket#connect のパラメータ host の名前解決に
resolv ライブラリを使います。
@param host connect するホスト名を文字列で指定します。
@param port connect するポートを指定します。
@raise SocketError 名前解決に失敗した場合に発生します。 -
UDPSocket
# send(mesg , flags , dest _ sockaddr=nil) -> Integer (9004.0) -
4 引数の形式で UDPSocket#send 実行したとき、 パラメータ host の名前解決に resolv ライブラリを使います。
4 引数の形式で UDPSocket#send 実行したとき、
パラメータ host の名前解決に
resolv ライブラリを使います。
@param mesg 送るデータを文字列で与えます。
@param flags フラグを指定します。
@param host データを送る先のホストを指定します。
@param port データを送る先のポートを指定します。
@raise SocketError 名前解決に失敗した場合に発生します。 -
WEBrick
:: HTTPRequest # parse(socket = nil) -> () (373.0) -
指定された socket からクライアントのリクエストを読み込み、 自身のアクセサなどを適切に設定します。
指定された socket からクライアントのリクエストを読み込み、
自身のアクセサなどを適切に設定します。
@param socket クライアントに接続された IO オブジェクトを指定します。 -
OpenSSL
:: SSL :: SSLServer # shutdown(how=Socket :: SHUT _ RDWR) -> 0 (361.0) -
ソケットの以降の接続を終了させます。
ソケットの以降の接続を終了させます。
詳しくは BasicSocket#shutdown を参照してください。
@param how 接続の終了の仕方を Socket::SHUT_RD, Socket::SHUT_WR,
Socket::SHUT_RDWR などで指定します。 -
OpenSSL
:: SSL :: SSLServer # accept -> OpenSSL :: SSL :: SSLSocket (304.0) -
クライアントからの接続を受け付け、接続した SSLSocket オブジェクトを返します。
クライアントからの接続を受け付け、接続した
SSLSocket オブジェクトを返します。
OpenSSL::SSL::SSLServer#start_immediately が真ならば、
SSLSocket#accept を呼び TLS/SSL ハンドシェイクを実行してから
SSLSocket オブジェクトを返します。 -
Array
# pack(template) -> String (130.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
Array
# pack(template , buffer: String . new) -> String (130.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
String
# unpack(template) -> Array (130.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
Array#pack で生成された文字列を
テンプレート文字列 template にしたがってアンパックし、
それらの要素を含む配列を返します。
@param template pack テンプレート文字列
@return オブジェクトの配列
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで「残り全て」
を表すこともできます。
長さの意味はテンプレート文字により異なりますが大... -
File
:: Stat # ftype -> String (22.0) -
ファイルのタイプを表す文字列を返します。
ファイルのタイプを表す文字列を返します。
文字列は以下のうちのいずれかです。
"file"
"directory"
"characterSpecial"
"blockSpecial"
"fifo"
"link"
"socket"
"unknown"
//emlist[例][ruby]{
fs = File::Stat.new($0)
p fs.ftype #=> "file"
p File::Stat.new($:[0]).ftype #=> "directory"
//}
1.8 以降では、属性メソッドがシステムでサポートされていない場合 nil... -
IPAddr
# family -> Integer (22.0) -
このオブジェクトのアドレスファミリを返します。
このオブジェクトのアドレスファミリを返します。
@see Socket