IP address representation.
Holds a binary representation of an IP address, either translated from a String
, or directly received from an opened connection (e.g. Socket#local_address
, Socket#receive
).
Example:
require "socket" Socket::IPAddress.new("127.0.0.1", 8080) Socket::IPAddress.new("fe80::2ab2:bdff:fe59:8e2c", 1234)
IPAddress
won't resolve domains, including localhost
. If you must resolve an IP, or don't know whether a String
constains an IP or a domain name, you should use Addrinfo.resolve
instead.
"255.255.255.255"
"ff0X::1"
"127.0.0.1"
"::1"
"0.0.0.0"
"::"
Creates an IPAddress
from the internal OS representation.
Parses a Socket::IPAddress
from an URI.
Parses a Socket::IPAddress
from an URI.
Returns a String
representation of the IP address.
Appends this struct's name and instance variables names and values to the given IO.
Returns true
if this IP is a loopback address.
Same as #inspect(io)
.
Returns true
if this IP is an unspecified address, either the IPv4 address 0.0.0.0
or the IPv6 address ::
.
Socket::Address
Socket::Address
Socket::Address
Struct
Value
Object
Object
Creates an IPAddress
from the internal OS representation. Supports both INET and INET6 families.
Parses a Socket::IPAddress
from an URI.
It expects the URI to include
where scheme
as well as any additional URI components (such as path
or query
) are ignored.
host
must be an IP address (v4 or v6), otherwise Socket::Error
will be raised. Domain names will not be resolved.
require "socket" Socket::IPAddress.parse("tcp://127.0.0.1:8080") # => Socket::IPAddress.new("127.0.0.1", 8080) Socket::IPAddress.parse("udp://[::1]:8080") # => Socket::IPAddress.new("::1", 8080)
Parses a Socket::IPAddress
from an URI.
It expects the URI to include
where scheme
as well as any additional URI components (such as path
or query
) are ignored.
host
must be an IP address (v4 or v6), otherwise Socket::Error
will be raised. Domain names will not be resolved.
require "socket" Socket::IPAddress.parse("tcp://127.0.0.1:8080") # => Socket::IPAddress.new("127.0.0.1", 8080) Socket::IPAddress.parse("udp://[::1]:8080") # => Socket::IPAddress.new("::1", 8080)
Returns a String
representation of the IP address.
Example:
ip_address = socket.remote_address ip_address.address # => "127.0.0.1"
Appends this struct's name and instance variables names and values to the given IO.
struct Point def initialize(@x : Int32, @y : Int32) end end p1 = Point.new 1, 2 p1.to_s # "Point(@x=1, @y=2)" p1.inspect # "Point(@x=1, @y=2)"
Returns true
if this IP is a loopback address.
In the IPv4 family, loopback addresses are all addresses in the subnet 127.0.0.0/24
. In IPv6 ::1
is the loopback address.
Same as #inspect(io)
.
Returns true
if this IP is an unspecified address, either the IPv4 address 0.0.0.0
or the IPv6 address ::
.
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/Socket/IPAddress.html