📌

スパム対策のため、国外からの書き込みは禁止する

2021/06/19に公開

スパム対策のため、国外からの書き込みは禁止する

ipアドレスからホスト名を取得し、ホスト名がjpか判定する。

Ruby 2.6.0preview2
Rails 5.2.1

require "resolv"

def restrict_remote_ip
  ip_address = request.remote_ip
  # => "123.123.123.123"
  host = Resolv.getname(ip_address)
  # => "example.co.jp"
  if host.exclude?(".jp")
    flash[:danger] = "スパム対策のため、書き込みは禁止しております。"
    redirect_to root_path
  end
  
rescue
  flash[:danger] = "スパム対策のため、書き込みは禁止しております。"
  redirect_to root_path
end

Discussion