0
環境:Ruby 1.9.2存儲和輸出帶有sinatra的格式化數組內容
我是Ruby/Sinatra的新手,並且正在創建概念驗證Web應用程序。目的很簡單:用戶輸入一個域列表,腳本首先檢查他們的mx記錄,如果他們符合條件,則取出域聯繫信息。我相當肯定,我不會適當地存儲數據,並且正在尋找一種更優雅的解決方案,這種解決方案將使我能夠將結果設置爲域,電子郵件和名稱組合在一起。
#!/usr/bin/env ruby
require "sinatra/base"
require 'rubygems'
require 'haml'
require 'sinatra'
require 'whois'
get '/' do
haml :index
end
post '/' do
@host = params[:host]
@host.split('\n')
@email = Array.new
@name = Array.new
@domain = Array.new
@host.each_line {|i|
if %x[dig -t mx #{i.chomp.gsub('www.', '')} | grep -i mx | grep -i google].empty?
puts "empty"
else
@domain << i.chomp.gsub('www.','')
@email << (Whois.whois(i.chomp.gsub('www.',''))).technical_contact.email
@name << (Whois.whois(i.chomp.gsub('www.',''))).technical_contact.name
end
}
haml :index
end
__END__
@@ layout
%html
%head
%title Gcrawl
%body
#header
%h1 Gcrawl
#content
=yield
%footer
@@ index
%p
Welcome to Gcrawl
%form(action='/' method='POST')
%textarea{:rows => '12', :cols => '40', :name => 'host'}
%input(type='submit')
- if defined?(@email)
%h3= @domain
%h3= @email
%h3= @name
你有可能指向我往這樣的例子? – 2012-02-03 13:20:26