LoginSignup
10
6

More than 5 years have passed since last update.

RubyでグローバルIPを取得する方法(標準ライブラリでできる!)

Posted at

やりたいこと

  • Rubyで、自分のマシンのグローバルIPアドレスを取得する

やり方

  • 必要な標準ライブラリはresolv
  • ip_addr_strにグローバルIPが手に入る(型は文字列型)
require 'resolv'
ip_addr_str = Resolv::DNS.new(:nameserver=>'ns1.google.com').getresources("o-o.myaddr.l.google.com", Resolv::DNS::Resource::IN::TXT)[0].strings[0]
# => "62.513.271.281"

動機と経緯

グローバルIPを知りたくなることは、たまにあり、今までcurlでグローバルIPを教えてくれるサイトを使って、手に入れていました。
だけど、これだとサーバーが落ちていたり、サーバーがサービスを終了したりして、困っていました。digコマンドでGoogleのDNS(?ちゃんと理解していません)でグローバルIPが手に入ることを知り、いままでよりGoogleなら安定的に入手できそうで、いい感じだったので、それをRubyでできないか探して、見つけた感じです。

参考になったところ一覧

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6