如何用ruby获取本机IP

Python019

如何用ruby获取本机IP,第1张

如何用ruby获取本机IP

require 'socket'

def local_ip

orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily

UDPSocket.open do |s|

s.connect '64.233.187.99', 1

s.addr.last

end

ensure

Socket.do_not_reverse_lookup = orig

end

p local_ip()

ruby的ipaddr可以很容易的将ip地址转换成整数,也可以很容易将整数转换成ip地址

require 'ipaddr'

#假设

= IPAddr.new "10.0.2.15"ip.to_i

在使用Cookie.find等操作的时候,就会连接到database.yml中monitor_spider配置的数据库上操作。以前一直都这么用,没发现什么不妥。最近一个项目,由于启动的进程比较多,老是碰到数据库连接池链接获取超时的错误。

通过MySQL Client用命令:show processlist发现数据库连接数量一直居高不下,轻轻松松就上2k+的连接。通过读Rails框架的connection_pool.rb文件代码,发现在各模型中用establish_connection连接数据库会造成很大的问题。文件中类ConnectionHandler的establish_connection方法代码如下:Ruby代码 def establish_connection(name, spec) @connection_pools[name] = ConnectionAdapters::ConnectionPool.new(spec) end def establish_connection(name, spec)

@connection_pools[name] = ConnectionAdapters::ConnectionPool.new(spec)