Hi
Could you please tell the code to get the IPaddress of my machine
Sijo
Hi
Could you please tell the code to get the IPaddress of my machine
Sijo
Sijo Kg wrote:
Hi
Could you please tell the code to get the IPaddress of my machine
This might work:
class Socket
class << self
def get_ip hostName
begin
ipInt = gethostbyname(hostName)[3]
return “%d.%d.%d.%d” % [ipInt[0].ord, ipInt[1].ord,
ipInt[2].ord, ipInt[3].ord]
rescue SocketError # bizarre, but happens
return ‘’
end
end
def get_host_ip
begin
ip = Socket.getaddrinfo(Socket.gethostname, nil,
Socket::AF_UNSPEC, Socket::SOCK_STREAM, nil,
Socket::AI_CANONNAME).select{|type| type[0] == ‘AF_INET’}[0][3] # ltodo
hmm we don’t want it to do the reverse lookups!
raise if ip.blank?
return ip
rescue => e
get_ip(Socket.gethostname) # less accurate or something, I guess
end
end
end
end
Hi
Thanks for the reply But please give an example to instantiate an object
of this class also
Sijo
Sijo Kg wrote:
Could you please tell the code to get the IPaddress of my machine
Your machine may have multiple IP addresses, but assuming its hostname
has been set up properly, the following may do the trick:
require ‘socket’
ip = IPSocket.getaddress(Socket.gethostname)
On Jan 6, 2009, at 3:15 PM, ab5tract wrote:
ip[0]
endmy_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 ;
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.
Sijo Kg wrote:
Could you please tell the code to get the IPaddress of my machine
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
Roger P. wrote:
Sijo Kg wrote:
Hi
Could you please tell the code to get the IPaddress of my machine
heh
it was for 1.9 anyway
let’s see
require ‘socket’
class Fixnum
def ord
self
end
end
Socket.get_host_ip
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs