diff --git a/app/settings.rb b/app/settings.rb index 2a50203a..09248784 100644 --- a/app/settings.rb +++ b/app/settings.rb @@ -1,3 +1,6 @@ +require 'socket' +require 'ipaddr' + get '/settings/?' do require_login @site = parent_site @@ -152,6 +155,15 @@ post '/settings/:username/custom_domain' do redirect "/settings/#{@site.username}/#custom_domain" end + begin + addr = IPAddr.new @site.values[:domain] + if addr.ipv4? || addr.ipv6? + flash[:error] = 'IP addresses are not allowed. Please enter a valid domain name.' + redirect "/settings/#{@site.username}#custom_domain" + end + rescue IPAddr::InvalidAddressError + end + begin Socket.gethostbyname @site.values[:domain] rescue SocketError, ResolutionError => e