class Socket::Ifaddr
Socket::Ifaddr repräsentiert ein Ergebnis der Funktion getifaddrs().
Öffentliche Instanzmethoden
Source
static VALUE
ifaddr_addr(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
if (ifa->ifa_addr)
return rsock_sockaddr_obj(ifa->ifa_addr, rsock_sockaddr_len(ifa->ifa_addr));
return Qnil;
}
Gibt die Adresse von ifaddr zurück. nil wird zurückgegeben, wenn die Adresse in ifaddr nicht verfügbar ist.
Source
static VALUE
ifaddr_broadaddr(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
if ((ifa->ifa_flags & IFF_BROADCAST) && ifa->ifa_broadaddr)
return rsock_sockaddr_obj(ifa->ifa_broadaddr, rsock_sockaddr_len(ifa->ifa_broadaddr));
return Qnil;
}
Gibt die Broadcast-Adresse von ifaddr zurück. nil wird zurückgegeben, wenn die Flags nicht IFF_BROADCAST enthalten.
Source
static VALUE
ifaddr_dstaddr(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
if ((ifa->ifa_flags & IFF_POINTOPOINT) && ifa->ifa_dstaddr)
return rsock_sockaddr_obj(ifa->ifa_dstaddr, rsock_sockaddr_len(ifa->ifa_dstaddr));
return Qnil;
}
Gibt die Zieladresse von ifaddr zurück. nil wird zurückgegeben, wenn die Flags nicht IFF_POINTOPOINT enthalten.
Source
static VALUE
ifaddr_flags(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
return IFAFLAGS2NUM(ifa->ifa_flags);
}
Gibt die Flags von ifaddr zurück.
Der Wert ist ein bitweises OR der Konstanten Socket::IFF_* wie z.B. Socket::IFF_LOOPBACK.
Source
static VALUE
ifaddr_ifindex(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
unsigned int ifindex = if_nametoindex(ifa->ifa_name);
if (ifindex == 0) {
rb_raise(rb_eArgError, "invalid interface name: %s", ifa->ifa_name);
}
return UINT2NUM(ifindex);
}
Gibt den Schnittstellenindex von ifaddr zurück.
Source
static VALUE
ifaddr_inspect(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
VALUE result;
result = rb_str_new_cstr("#<");
rb_str_append(result, rb_class_name(CLASS_OF(self)));
rb_str_cat2(result, " ");
rb_str_cat2(result, ifa->ifa_name);
if (ifa->ifa_flags)
ifaddr_inspect_flags(ifa->ifa_flags, result);
if (ifa->ifa_addr) {
rb_str_cat2(result, " ");
rsock_inspect_sockaddr(ifa->ifa_addr,
rsock_sockaddr_len(ifa->ifa_addr),
result);
}
if (ifa->ifa_netmask) {
rb_str_cat2(result, " netmask=");
rsock_inspect_sockaddr(ifa->ifa_netmask,
rsock_sockaddr_len(ifa->ifa_netmask),
result);
}
if ((ifa->ifa_flags & IFF_BROADCAST) && ifa->ifa_broadaddr) {
rb_str_cat2(result, " broadcast=");
rsock_inspect_sockaddr(ifa->ifa_broadaddr,
rsock_sockaddr_len(ifa->ifa_broadaddr),
result);
}
if ((ifa->ifa_flags & IFF_POINTOPOINT) && ifa->ifa_dstaddr) {
rb_str_cat2(result, " dstaddr=");
rsock_inspect_sockaddr(ifa->ifa_dstaddr,
rsock_sockaddr_len(ifa->ifa_dstaddr),
result);
}
rb_str_cat2(result, ">");
return result;
}
Gibt eine Zeichenkette zur Anzeige des Inhalts von ifaddr zurück.
Source
static VALUE
ifaddr_name(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
return rb_str_new_cstr(ifa->ifa_name);
}
Gibt den Schnittstellennamen von ifaddr zurück.
Source
static VALUE
ifaddr_netmask(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
if (ifa->ifa_netmask)
return rsock_sockaddr_obj(ifa->ifa_netmask, rsock_sockaddr_len(ifa->ifa_netmask));
return Qnil;
}
Gibt die Netzmaskenadresse von ifaddr zurück. nil wird zurückgegeben, wenn die Netzmaske in ifaddr nicht verfügbar ist.
Source
static VALUE
ifaddr_vhid(VALUE self)
{
struct ifaddrs *ifa = get_ifaddrs(self);
if (ifa->ifa_data)
return (INT2FIX(((struct if_data*)ifa->ifa_data)->ifi_vhid));
else
return Qnil;
}
Gibt die vhid-Adresse von ifaddr zurück. nil wird zurückgegeben, wenn kein vhid vorhanden ist.