WARPSTARのGlobal IPアドレスを取得するプログラム
NEC製のCATV/ADSLルータのWARPSTARのWAN側のIPアドレスを取得するプログラムを書きました。
どの機種にも使えるかどうかはわかりませんが、telnetのインタフェースを持っているものなら少し改造すれば使えると思います。
HOSTとUSER_NAMEとPASSWORDをご自分の環境に合わせて修正してくださいね。
#!/usr/bin/ruby # WARPSTER用のIPアドレス取得プログラム # HOST, USER_NAME, PASSWORDを設定してください。 HOST="192.168.0.1" USER_NAME="your_id" PASSWORD="your_password" def get_ip host, user, password telnet = nil begin require 'net/telnet' telnet = Net::Telnet.new("Host"=>host, "Prompt"=>/^>/) telnet.waitfor(/[lL]ogin/) telnet.cmd("String"=>user, "Match"=>/^Password: /) telnet.cmd("String"=>password) ip = nil telnet.cmd("String"=>"show info wan 22") do |c| c.split(/\n/).each do |line| if line =~ /^ IP ADDRESS(?:[\s.]+)(\d+)(?:[\s.]*)(\d+)(?:[\s.]*)(\d+)(?:[\s.]*)(\d+)/ ip = "#{$1}.#{$2}.#{$3}.#{$4}" break end end end telnet.cmd("exit") rescue if telnet telnet.close end end ip end ip = get_ip HOST, USER_NAME, PASSWORD print "ip:#{ip}\n"