Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

URLから国名と都市名を調べる

hostip.infoは,IPアドレスから国名や都市名を調べてくれる便利なサイトです。これを使って,コマンドラインからURLを入力すると,そのサーバが存在する国名,都市名を表示するスクリプトを作ってみました。

hostipinfo.rb

require 'net/http'
require 'socket'

if ARGV.length == 0
  puts "Usage: ruby #{$0} url"
  exit 0
end

url = ARGV[0]
ipaddr =  IPSocket.getaddress(url) 

Net::HTTP.version_1_2
Net::HTTP.start('api.hostip.info', 80) { |http|
  response = http.get('/get_html.php?ip=' + ipaddr)
  puts response.body
}

実行結果

$ ruby hostipinfo.rb www.google.com
Country: UNITED STATES (US)
City: Mountain View, CA
IP: 66.249.89.104
$ ruby hostipinfo.rb www.ruby-lang.org
Country: JAPAN (JP)
City: (Unknown city)
IP: 221.186.184.68