I was crawling random.org HTTP client archieve(which some of them are really out-dated) and found what I need. Ruby HTTP client.
Here it is the code
#Written by Ben Aroia :: benaroia@gmail.com :: d0ve.particalburst.com
#2008-03-04
#version 0.61
#Define: HTTP GET code for RANDOM.ORG that retrieves random numbers and outputs
# them in the order they appear. It is/will be possible to allow outputing
# in several different formats. (i.e. print them/use them one by one,
# save them to a file in several formats, command line options, etc) This
# is a basic version that will allow you to use the Integer Generator and
# output in a single line at the terminal.
#
#Usage:
# ruby random-get.rb [options]
# -n [num] - number of numbers to generate
# -mn [num] - lowest number possible
# -mx [num] - highest number to generate
# -c [num] - number of columns to format to (default is one, enter 0 to output without line breaks)
# -b [2/8/10/16] - output in base [2/8/10/16]
require 'net/http'
require 'uri'
def bitsLeft()
bit_left = Net::HTTP.get_response(URI.parse("http://ift.tt/1ayfepT"))
if(bit_left.code.to_i != 200) then
return "Error recieving the code. Please try again later.\n"
end
return bit_left.body+" bits left.\n"
end
def bitCheck()
bit_left = Net::HTTP.get_response(URI.parse("http://ift.tt/1ayfepT"))
if(bit_left.code.to_i > 0) then return true end
return false
end
versioninfo =
"RandomGet version 0.61 by Ben Aroia && Josh Kehn
http://ift.tt/1a4Ns3j
benaroia@gmail.com
(c)2008 Programmers, Ltd.
DISTRIBUTED UNDER THE GNU GPL
"
usage =
"Usage:
ruby random-get.rb [options]
-n [num] - number of numbers to generate
-mn [num] - lowest number possible
-mx [num] - highest number to generate
-c [num] - number of columns to format to (default is one, enter 0 to output without line breaks)
-b [2/8/10/16] - output in base [2/8/10/16]
--------------------------------------------------------------------------
-h - prints help
-v - print version
-left - prints the number of random bits left
"
if ARGV.empty? then
print "Error. No arguments\n"
print usage
Process.exit
end
0.upto(ARGV.length) { |i|
if(ARGV[i] == "-v" || ARGV[i] == "-version") then
print versioninfo
Process.exit
end
if(ARGV[i] == "-h" || ARGV[i] == "-help") then
print usage
Process.exit
end
if(ARGV[i] == "-left") then
print bitsLeft()
Process.exit
end
}
if(!bitCheck()) then
print "Something appears to be wrong with your balance. Please use -left to check the number of available bits.\n"
Process.exit
end
url_code = "http://ift.tt/1m9oYrI?"
#define variables
number = "num=100"
min = "min=1000000"
max = "max=9999999"
col = "col=1"
base = "base=10" #I just love hex for some reason
#tail (options that shouldn't change)
tail = "&format=plain&rnd=new"
#and sign
s_and = "&"
#breaks boolean
breaks = true
#modify variables
0.upto(ARGV.length) { |i|
if(ARGV[i] == "-n") then number = "num="+ARGV[i+1].to_s end
if(ARGV[i] == "-mn") then min = "min="+ARGV[i+1].to_s end
if(ARGV[i] == "-mx") then max = "max="+ARGV[i+1].to_s end
if(ARGV[i] == "-c") then col = "col="+ARGV[i+1].to_s end
if(ARGV[i] == "-b") then base = "base="+ARGV[i+1].to_s end
if(ARGV[i] == "-c") then
if(ARGV[i+1].to_s == "0") then
col = "col=1"
breaks = false
end
end
}
#create GET command
url_code += number.to_s+s_and+min.to_s+s_and+max.to_s+s_and+col.to_s+s_and+base.to_s+tail
requ = Net::HTTP.get_response(URI.parse(url_code.to_s))
#if requ.code == "200" then print "Code: 200 is good\n" end
if requ.code != "200"
then
print "Code: "+requ.code+" is not correct"
Process.exit
end
if(breaks) then
print requ.body
Process.exit
end
body = requ.body.split
0.upto(body.length-1) { |i|
print body[i]
}
The problem is that Random.org now uses 301 redirections and this script doesn't support it! Can someone please help me, I urgently need this...
Thanks in advance!
Aucun commentaire:
Enregistrer un commentaire