It is important to realize that this method won't take into account any sort of NAT device that may be between you and an external website.
Whether that is important or not depends on the reason for needing an IP address in the first place.
···
On Jan 6, 2009, at 3:15 PM, ab5tract wrote:
Another way to do this:
require 'ipaddr'
require 'net/http'
def get_ip
con = Net::HTTP.new('checkip.dyndns.org', 80)
resp,body = con.get("/", nil)
ip = body.match(/\d+\.\d+\.\d+\.\d+/)
ip[0]
end
my_ip = IPAddr.new(get_ip)
I had to do this as a work around before, though if I was working
around an issue with Socket.gethostname or my own ignorance I can no
longer tell ;