IPアドレスからホスト名を取得する [海外アクセスの判定]
Ruby on RailsでIPアドレスからホスト名を取得して、末尾がJPの場合のみ国内アクセスとみなして、海外からのアクセスを判定する。
ソースコード
IPv4のIPアドレスが日本国内かどうか判定する。 ※IPv6には未対応
require 'resolv' def isJapan?(ip) # ローカルの開発環境は除外する if(ip == "::1" || ip == "127.0.0.1") return true end # IPアドレスをホスト名に変換 host = Resolv.getname(ip) # 末尾が「jp」ならば日本とする if host.split('.')[-1].downcase == "jp" true else false end # ルックアップに失敗したときに発生 rescue Resolv::ResolvError false end
※毎回だと処理が重くなるのでセッションなどに保存しておくこと
スポンサーリンク
関連記事
公開日:2019年10月14日
記事NO:02792