ホストの IP アドレスを取得する方法

参考:

How to get my machine’s IP address from Ruby without leveraging from other IP address? – Stack Overflow

To get IP addres of the machine – Ruby Forum

Socket.getifaddrs

参考:

Ruby 2.1.0 では Socket.getifaddrs で簡単にインターフェイスのアドレスを取れる – Qiita

Socket.ip_address_list

Socket.ip_address_list.find do |intf|
  intf.ipv4? && !intf.ipv4_loopback? && !intf.ipv4_multicast?
end.ip_address

参考:

Getting the Hostname or IP in Ruby on Rails – Stack Overflow

グローバル 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]
# => "xx.xx.xx.xx"

参考:

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

resolv ライブラリ

参考:

library resolv (Ruby 2.5.0)

Resolv::DNS

参考:

class Resolv::DNS (Ruby 2.5.0)

Tagged:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です