method
ip_port
v2_1_10 -
Show latest stable
- Class:
Addrinfo
ip_port()public
Returns the port number as an integer.
Addrinfo.tcp("127.0.0.1", 80).ip_port #=> 80 Addrinfo.tcp("::1", 80).ip_port #=> 80
static VALUE
addrinfo_ip_port(VALUE self)
{
rb_addrinfo_t *rai = get_addrinfo(self);
int family = ai_get_afamily(rai);
int port;
if (!IS_IP_FAMILY(family)) {
bad_family:
#ifdef AF_INET6
rb_raise(rb_eSocket, "need IPv4 or IPv6 address");
#else
rb_raise(rb_eSocket, "need IPv4 address");
#endif
}
switch (family) {
case AF_INET:
if (rai->sockaddr_len != sizeof(struct sockaddr_in))
rb_raise(rb_eSocket, "unexpected sockaddr size for IPv4");
port = ntohs(rai->addr.in.sin_port);
break;
#ifdef AF_INET6
case AF_INET6:
if (rai->sockaddr_len != sizeof(struct sockaddr_in6))
rb_raise(rb_eSocket, "unexpected sockaddr size for IPv6");
port = ntohs(rai->addr.in6.sin6_port);
break;
#endif
default:
goto bad_family;
}
return INT2NUM(port);
} Related methods
- Instance methods
- afamily
- bind
- canonname
- connect
- connect_from
- connect_to
- family_addrinfo
- getnameinfo
- inspect
- inspect_sockaddr
- ip?
- ip_address
- ip_port
- ip_unpack
- ipv4?
- ipv4_loopback?
- ipv4_multicast?
- ipv4_private?
- ipv6?
- ipv6_linklocal?
- ipv6_loopback?
- ipv6_mc_global?
- ipv6_mc_linklocal?
- ipv6_mc_nodelocal?
- ipv6_mc_orglocal?
- ipv6_mc_sitelocal?
- ipv6_multicast?
- ipv6_sitelocal?
- ipv6_to_ipv4
- ipv6_unique_local?
- ipv6_unspecified?
- ipv6_v4compat?
- ipv6_v4mapped?
- listen
- marshal_dump
- marshal_load
- pfamily
- protocol
- socktype
- to_s
- to_sockaddr
- unix?
- unix_path
- Class methods
- foreach
- getaddrinfo
- ip
- new
- tcp
- udp
- unix
- Private methods
-
connect_internal