Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Area Aziende Cocktail Registrazione domini



Verificare l'esistenza di un dominio con ASP ed XMLHTTP

Home + Articoli + XML + Articolo # 125
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


La potenza dell'oggetto XMLHTTP, di casa Microsoft, permette di lavorare con file remoti e di gestirne una serie di dati; tra le sue molte sfaccettature esiste la proprietà Status che permette di definire, come si intende, lo stato della richiesta. In questo Articolo esaminiamo lo stato identificato col numero 12007 che identifica se la richiesta è andata a buon fine o meno.

Prendiamo sputo per costruire una piccola utility per il nostro sito per verificare se un dominio esiste o meno: si tratta di un servizio meno potente di un tradizionale WhoIs che conosciamo sui vari siti di Hosting della rete, nel senso che non è possibile sapere a chi è intestato il dominio e quali sono i dati di rete associati, ma semplicemente se è stato registrato o meno.

Di seguito un codice statico che verifica se il dominio specificato nella variabile indirizzo esiste o meno:
<%@LANGUAGE = VBScript%>
<html>
<body>

<p>
<%
    Dim indirizzo, xmlhttp, stato
    indirizzo = "http://www.mrwcorsi.it"
    Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
        On Error Resume Next
        xmlhttp.Open "GET", indirizzo, False
        xmlhttp.Send
        stato = xmlhttp.Status
        If CInt(stato) = 12007 Then
            Response.Write "Dominio libero"
        Else
            Response.Write "Dominio occupato"
        End If
    Set xmlhttp = Nothing
%>
</p>

</body>
</html>
Commentiamo il codice.
Dim indirizzo, xmlhttp, stato
Dichiaro le variabili che servono per indicare il dominio da pingare, per creare l'oggetto XMLHTTP e per definire lo stato della richiesta.
indirizzo = "http://www.mrwcorsi.it"
Valorizzo la variabile indirizzo con la URL del sito di MRW Corsi, tanto per fare un esempio.
Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
Creo un'istanza dell'oggetto XMLHTTP nella variabile xmlhttp.
On Error Resume Next
Questa clausola di gestione dell'errore è indispensabile perchè se ad XMLHTTP viene passato un file remoto, o in questo caso un dominio remoto, inesistente, va in errore e termina l'esecuzione della pagina. Questa gestione dell'errore serve nel caso in cui il dominio ricercato sia libero.
xmlhttp.Open "GET", indirizzo, False
xmlhttp.Send
Apro e lancio la richiesta HTTP.
stato = xmlhttp.Status
Assegno alla variabile stato lo stato della richiesta.
If CInt(stato) = 12007 Then
    Response.Write "Dominio libero"
Else
    Response.Write "Dominio occupato"
End If
Lancio la condizione secondo la quale se lo stato della richiesta è 12007 allora il dominio è libero, altrimenti vuol dire che il dominio è occupato. Per effettuare la verifica è necessario convertire in numerico la variabile stato con la funzione predefinita CInt() di VBScript (nativa di Visual Basic).

Lascio a voi il compito di creare un file HTML con un modulo che permetta di inserire il dominio da ricercare e di assegnare alla variabile indirizzo il compito di recuperare il dato; ad esempio:
Dim indirizzo
indirizzo = Request.Form("indirizzo")
© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones