2011/5/11 Iaki Baz Castillo <ibc / aliax.net>:
> Hi, basically I'm looking for a way to find all the IP's in the
> network interfaces of my computer in a reliable way.
>
> I know a "workaround":
>
> --------------------------
> UDPSocket.open {|s| s.connect "1.2.3.4", 80; s.addr }
> ---------------------------
>
> => ["AF_INET", 33564, "192.168.1.16", "192.168.1.16"]
>
> But this method knows nothing about other IP's in the same interface,
> neither allows me to discover other IP's in other interfaces with
> different routes.


I got another way:

  Socket::getaddrinfo(Socket.gethostname, "echo", Socket::AF_INET).map
{ |x| x[3] }

=> ["127.0.0.1", "127.0.0.1", "127.0.1.1", "127.0.1.1",
"192.168.1.16", "192.168.1.16"]

Not very cool, but...


PS: There is also a ruby-ifconfig library, not available via gem it seems.

-- 
Iaki Baz Castillo
<ibc / aliax.net>