中关村村草 发表于 2011-04-19 12:56

ruby实例

ruby实例

1.抓取百度新歌Top100的歌名及歌手名单require "open-uri"
require "hpricot"
doc = open("http://list.mp3.baidu.com/list/newhits.html?id=1#top1") { |f| Hpricot(f) }
doc.search(".border").each do |table|
   table.search("a").each do |link|
    print link.inner_html
   end
   puts
end2.多线程端口扫描器require 'socket'
include Socket::Constants
ports = (1..1024).to_a
threads = []
time1 = Time.now
for port in ports
    threads << Thread.new(port) do |theport|
      begin
            sock = Socket.new(AF_INET, SOCK_STREAM, 0)
            sockaddr = Socket.pack_sockaddr_in(theport, 'localhost')
            sock.connect(sockaddr)
            puts "Port:#{theport} is Opend! "
            sock.close
      rescue
            #...
      end
    end
end
threads.each {|thr| thr.join}
puts " 共耗时:#{Time.now - time1}秒"3.查看外网IP地址require 'socket'
require 'open-uri'
inner_ip = Socket.getaddrinfo(Socket.gethostname, Socket::AF_INET)
html = URI.parse("http://www.baidu.com").read
outer_ip = html.scan(/(({1,3}.?){4})/).flatten.first
puts "内网IP地址:#{inner_ip}"
puts "外网IP地址:#{outer_ip}"4.多线程下载#多线程批量下载http://www.milw0rm.com/上的exploits,自动存放。

require "open-uri"
if $*==nil or $*==nil or $*==nil
abort "用法示例:ruby #$0 开始数 结束数 存放的目录 EX:如ruby #$0 200 300 c:\\1 "
end
time1 = Time.now
threads = []
for i in $*..$*
   exploits= "http://www.milw0rm.com/exploits/"+i.to_s
   threads << Thread.new(i) do |thei|
   begin
   data=open(exploits){|f|f.read}
   open("#{$*}\\#{thei}.htm","wb"){|f|f.write(data)}
   print thei,"-"
   rescue
      #...如果没有这个url,显示404不去管它,让它没有错误回显
    end
end
end
threads.each {|thr| thr.join}
puts " 下载完成,共耗时:#{Time.now - time1}秒"4.模拟登录页面
#coding: utf-8 #登录出现中文才需要使用
require "win32ole" #包含库
ie = WIN32OLE.new('internetExplorer.Application')
ie.visible = true #这个时候就可以看到一个ie的界面出来了
ie.navigate('http://localhost/login.php') #转到这个页面
sleep(0.1) until ie.busy == false #sleep 直到ie.busy为false 页面完全载入为止
ie.Document.getElementById("username").value = "admin" #输入账户名
ie.Document.getElementById("password").value = "123456" #输入密码
ie.Document.getElementById("submit").click #登录按钮的id是btn1 模拟点击一下

zhlong8 发表于 2011-04-19 14:57

老大,把您签名改了吧。这么NB的人显得有失水准啊 :mrgreen:

三里屯摇滚 发表于 2011-04-19 16:34

老大,把您签名改了吧。这么NB的人显得有失水准啊
zhlong8 发表于 2011-04-19 14:57 http://bbs.chinaunix.net/images/common/back.gif


    哈哈,不怕不怕!这不,你注意到了!这签名,啧啧啧,漂亮!

zuerrong 发表于 2011-04-20 09:14

very nice.

bugbugbug3 发表于 2011-04-20 10:14

一直很佩服村草兄的勤劳:)

原帖见这里:
http://my.oschina.net/u/130017/blog/15518

x9x9 发表于 2011-04-20 20:51

老大,把您签名改了吧。这么NB的人显得有失水准啊
zhlong8 发表于 2011-04-19 14:57 http://bbs.chinaunix.net/images/common/back.gif

    楼主会不会写Ruby代码真不好说~

zhlong8 发表于 2011-04-21 09:52

楼主会不会写Ruby代码真不好说~
x9x9 发表于 2011-04-20 20:51 http://bbs.chinaunix.net/images/common/back.gif


    我很赞同 :luya:

中关村村草 发表于 2011-04-21 15:36

楼主会不会写Ruby代码真不好说~
x9x9 发表于 2011-04-20 20:51 http://bbs.chinaunix.net/images/common/back.gif


    我承认,我不会写ruby代码,但是每天为了给ruby版找各种资料,没功劳也有苦劳,还是希望各位能支持!拜托了!

2gua 发表于 2011-04-21 21:12

别打击村艹了,他在支持Ruby版呢,应该感谢他!:handshake

中关村村草 发表于 2011-04-22 11:13

回复 9# 2gua


    谢谢瓜哥!
页: [1] 2
查看完整版本: ruby实例