Posted by 白垩纪动物 on 2007年05月24日
利用ruby snmp library取网络设备的运行时间。
require ’snmp’
unless ARGV[0]
puts "Please supply the hostname or ip address"
exit
end
data = Array.new
SNMP::Manager.open(:Host => ARGV[0], :Version => :SNMPv1, :Community => ‘public’) do |manager|
response = manager.get(["sysName.0", "sysUpTime.0"])
response.each_varbind do |vb|
 
Posted by 白垩纪动物 on 2007年05月22日
SNMP Library for Ruby 是一个SNMP的纯Ruby实现,也是到目前为止唯一的一个。Dave Halliday 在2004-6-21开始并独立实施了这个项目。他在Rubyforge 发布了第一个release:0.2.0,最新的版本是1.0.1,去年5.4发布。
不幸的是,这个项目现在处于停滞状态。我前几天向作者请求SNMP v3的支持,Dave在邮件里说他没有时间可以花在这个项目上,而且也没有任何计划开发对SNMPv3的支持。
尽管如此,目前的版本对SNMP v1/v2c都支持的很好,与NET-SNMP相比更加简单易用,一方面是因为其api的设计丰富、直接,另一方面Ruby的确比Perl要友好多了;功 能上的优异并没有影响到ruby snmplib的可靠稳定,
Posted by 白垩纪动物 on 2007年05月22日
关键在于发起telnet对话时,添加一个短暂的waittime。
localhost = Net::Telnet::new("Host" => "192.168.0.1",
Posted by 白垩纪动物 on 2007年05月01日
给自己出个弱智题目,练练iterator和自定义method:打印出[1, 2, 3, ..., 100]中可被2整除的数字。
def mod2?(number)
number % 2 == 0
end
a = (1..100).to_a; a2 = []
a2 = a.each do |number|
if mod2?(number)
a2 << number
end
Posted by 白垩纪动物 on 2007年05月01日
虽然不喜欢在变量名、方法名里出现非字母、非数字的字符,比如@, @@, ?,(貌似是我的洁癖),但是我得承认’?'在ruby里的功用非常有趣和实用。
比如要写一个简单的方法,判断一个整数是否可被2整除。
def mod2?(number)
number % 2 == 0
end
方法mod2?()会返回一个布尔对象,true or false,可以被方便的利用。
Posted by 白垩纪动物 on 2007年05月01日
要创建一个array,形如:[1, 2, 3, 4, ........, 100]。
我的第一反映:
i = 1; a = []
while i <= 100
a << i; i = i + 1
end
puts a
从Ruby Cookbook上看到的办法,充分看出我的愚蠢和ruby的妙处:
a = (1..100).to_a &
Posted by 白垩纪动物 on 2006年09月01日
August 29, 2006, One-Clink Ruby Installer发布了1.8.5-21版本。更新日志如下:http://rubyforge.org/frs/shownotes.php?release_id=6672
Posted by 白垩纪动物 on 2006年07月25日
初学Ruby的时候,看的是Chris Pine的Learn to Program,其中有一章讲到looping,Chris出了一道题,要求打印"99 Bottles of Beer on the Wall"这首歌的歌词。
我猜想这大概是老外们耳熟能详的儿歌,否则Chris不会如此随意地出这么一道练习并且不附录歌词,没想到中西方文化差异在学编程的时候也能碰到,倒也是趣事。
google了一下,竟然找到这么一个网页99 Bottles of Beer,
Posted by 白垩纪动物 on 2006年07月19日
2006年7月8号,One-Clink Ruby Installer发布了1.8.4-19 Final版本。下载地址:http://rubyforge.org/projects/rubyinstaller/
Posted by 白垩纪动物 on 2006年04月29日