diff --git a/app/models/wds_server.rb b/app/models/wds_server.rb
index 3371c7797861010db688253a10b18020635e427e..835735ff1b928841a217eedd08bdd8de9271ac25 100644
--- a/app/models/wds_server.rb
+++ b/app/models/wds_server.rb
@@ -111,8 +111,11 @@ class WdsServer < ApplicationRecord
   end
 
   def next_server_ip
-    Resolv.getaddresses(URI(url).host).select { |str| IPAddr.new(str).ipv4? }.first
-  rescue Resolv::ResolvError => e
+    res = Resolv::DNS.open { |dns| dns.getaddresses(URI(url).host) }.select { |addr| addr.is_a? Resolv::IPv4 }.first
+    return res.to_s if res
+
+    IPSocket.getaddress URI(url).host
+  rescue StandardError => e
     ::Rails.logger.info "Failed to look up IP of WDS server #{name}. #{e.class}: #{e}"
     nil
   end