Domanda

Qualcosa sulla falsariga di:

def domain_exists?(domain)
  # perform check
  # return true|false
end

puts "valid!" if domain_exists?("example.com")
È stato utile?

Soluzione

Se si desidera controllare se un dominio è registrato o no, allora avete bisogno per eseguire una query Whois. http://www.ruby-whois.org/

Altri suggerimenti

require 'socket'

def domain_exists?(domain)
  begin
    Socket.gethostbyname(domain)
  rescue SocketError
    return false
  end

  true
end

Con rubino whois è abbastanza facile:

Installa gemma e richiedono.

a = Whois.whois ( "google.com")

a.available? => False

C'è anche un bundle CLI se lo si installa tramite le gemme del rubino: ruby-whois

La pagina web all'indirizzo: ruby-whois.org

Si potrebbe sborsare per nslookup in questo modo:

`nslookup #{domain}`

e analizzare i risultati come testo con regex etc.

In alternativa, è possibile utilizzare il Socket di classe, in particolare Socket.getaddrinfo. Vedi precedente StackOverflow risposta su questo stessa domanda.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top