Ruby Tips!

RubyのTipsを紹介します

ホスト名からIPアドレスを得る / IPアドレスからホスト名を得る

ホスト名からIPアドレスを得るには、Socket.getaddrinfoを使う。
第1引数にはホスト名、第2引数にはサービス名を与える。
返却値はアドレス情報の配列であり、3番目の要素にIPアドレスが格納されている。

逆に、IPアドレスからホスト名を得るには、Socket.getnameinfoを使う。
引数にはアドレスファミリー、サービス、ホスト名の配列を与える。
返却値は配列で、IPアドレスとポートが格納されている。

require 'socket'
p Socket.getaddrinfo("rubytips86.hatenablog.com", nil)[0][3] #=> "54.249.30.47"
p Socket.getnameinfo([nil, 0, "54.249.30.47"])[0] #=> "ec2-54-249-30-47.ap-northeast-1.compute.amazonaws.com"