Avatar billede malte Nybegynder
07. september 2005 - 06:38 Der er 48 kommentarer og
2 løsninger

DKHostmaster lookup

Hej er der nogen der har et script der kan lave opslag på DK-hostmaster og se om et .dk domæne er ledigt?
Avatar billede nielle Nybegynder
07. september 2005 - 07:00 #1
DEenne funktion laver whois-forespørelser på et udvalg af TopLevelDomæner, heribland på .dk via dk-hostmaster:

function doWhois(Domain, Scope)
  Domain = LCase(Domain)

  Host = ""
  if InStr(Domain, ".dk") <> 0 then
    Host = "www.dk-hostmaster.dk"  ' "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"
  elseif InStr(Domain, ".com") <> 0 or InStr(Domain, ".net") <> 0 then
    Host = "rs.internic.net"  ' "whois.crsnic.net"
    SearchStr = "No match for "  ' "No match for"
  elseif InStr(Domain, ".org") <> 0 then
    Host = "whois.opensrs.net"  ' "whois.publicinterestregistry.net"
    SearchStr = "NOT FOUND"  ' "NOT FOUND"
  elseif InStr(Domain, ".nu") <> 0 then
    Host = "whois.nic.nu"
    SearchStr = "NO MATCH for domain "
  elseif InStr(Domain, ".biz") <> 0 then
    Host = "whois.nic.biz"
    SearchStr = "Not found"
  elseif InStr(Domain, ".info") <> 0 then
    Host = "whois.opensrs.net"
    SearchStr = "NOT FOUND"
  elseif InStr(Domain, ".ws") <> 0 then
    Host = "whois.nic.ws"
    SearchStr = "No match for"
  elseif InStr(Domain, ".as") <> 0 then
    Host = "whois.nic.as"
    SearchStr = "Domain Not Found"
  end if

  if Host <> "" then
    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close
    if Scope="short" then
      doWhois = InStr(Result, SearchStr)  ' 0: domain already exist, >0: domaæn ins free for register
    else
      doWhois = Result
    end if
    set Socket = nothing
  else
    doWhois = -1  ' Unknown TLD
  end if
end function
Avatar billede busschou Praktikant
07. september 2005 - 07:00 #2
du kan fx benytte sockets til at slå op i whois for at se hvem som ejer et domæne
-----
<html>
<head>
  <title>w3 Sockets Demo Script</title>
<head>
<body bgcolor="white">
<blockquote>
<h2>w3 Sockets Demo Script</h2>

<%
strServer = "whois.dk-hostmaster.dk"
strDomain = "eksperten.dk"

Set socket = Server.CreateObject("Socket.TCP")
Socket.Host = strServer + ":43"
Socket.Open
Socket.timeout = 20000
Socket.SendLine(strDomain)
Socket.WaitForDisconnect
strResult = Socket.Buffer
Socket.Close
Set Socket = nothing
%>
Resultat for whois: <b><%=strDomain%></b><br>

<pre>
<%=strResult%>
</pre>

</blockquote>
</body>
</html>
-----
hvor strDomain er det domæne du vil finde
Hvis du forsøger dig ad kan du se hvad svaret er hvis det findes, og hvad svaret er hvis det ikke findes.
Hvis det findes får man resultatet listet, hvis det ikke findes får man noget ala "No entries found for the selected source."
Derved kan du evt i stedet for at udskrive strResult så blot tjekke om strResult indholder den sætning, hvis den gør så er det ledigt, hvis ikke ja så er det optaget :o)
Avatar billede busschou Praktikant
07. september 2005 - 07:02 #3
ok nielles funktion tester så for flere tilfælde end dk domæner, det er måske en fordel
Avatar billede nielle Nybegynder
07. september 2005 - 09:17 #4
Hvis der kun skal testet for .dk-domæner kan min kode simplifiseres til:

function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    Host = "www.dk-hostmaster.dk"  ' "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' 0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function
Avatar billede malte Nybegynder
07. september 2005 - 21:01 #5
Kræver det ikke w3 funktioner installeret?
Avatar billede busschou Praktikant
07. september 2005 - 21:05 #6
jo det kræver du har adgang til sockets
Avatar billede nielle Nybegynder
07. september 2005 - 21:06 #7
Jeg er ikke klar over hvad du mener med w3-funktioner, men nej, det eneste der kræves er Socket.TCP.
Avatar billede malte Nybegynder
07. september 2005 - 21:20 #8
Ok, så hvordan skal scriptet sættes ind på siden. (hvordan ser det komplette script ud?)
Avatar billede nielle Nybegynder
07. september 2005 - 21:26 #9
Nogle eksempler:

<%
function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    Host = "www.dk-hostmaster.dk"  ' "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' 0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function

' ---------------------

EtMuligtDomain = "Eksperten.dk"

' ---------------------

If doWhois(EtMuligtDomain, "short") = Then
    Response.Write "Desværre, " & Domain & " er allere taget."
End If

' ---------------------

Resp = doWhois(EtMuligtDomain, "full")
If Resp <> "" Then
    Response.Write "<pre>"
    Response.Write Resp
    Response.Write "</pre>"
End If
%>
Avatar billede malte Nybegynder
07. september 2005 - 21:36 #10
Er der et form exempel?
Avatar billede nielle Nybegynder
07. september 2005 - 21:45 #11
<form method="post">
Domæne: <input type="text" value="DomainToTest">
<input type="submit" name="SubmitButton" value="Test">
</form>

<%
function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    Host = "www.dk-hostmaster.dk"  ' "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' =0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function

If Request.Form("SubmitButton") = "Test" Then
    DomainToTest = Request.Form("DomainToTest")

    If doWhois(DomainToTest, "short") = 0 Then
        Response.Write "Desværre, " & DomainToTest & " er allerede taget."
    Else
        Response.Write "Tillykke, " & DomainToTest & " er endnu ikke taget."
    End If
End If
%>
Avatar billede malte Nybegynder
07. september 2005 - 21:49 #12
skal det så være 2 sider
Avatar billede malte Nybegynder
07. september 2005 - 21:52 #13
Jeg får denne fejl?
Server object error 'ASP 0178 : 80070005'

Server.CreateObject Access Error

/test2.asp, line 13

The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
Avatar billede nielle Nybegynder
07. september 2005 - 21:53 #14
Så har du øjensynligt ikke adgang til at bruge Socket.TCP :^(
Avatar billede busschou Praktikant
07. september 2005 - 21:54 #15
hehe som sagt som så :o(
Avatar billede malte Nybegynder
07. september 2005 - 21:56 #16
Det er min egen server?
Avatar billede busschou Praktikant
07. september 2005 - 21:56 #17
så kan du jo installere det :o)
Avatar billede busschou Praktikant
07. september 2005 - 21:57 #18
alternativt og bøvlet kan du jo kalde dk-hostmaster med
http://www.dk-hostmaster.dk/index.php?id=42&query=XXXX&submit.x=47&submit.y=9
hvor XXXX er det domæne du vil finde
Dernæst kan du hive indholdet ud af siden via en xml parser
Avatar billede busschou Praktikant
07. september 2005 - 21:59 #19
du kan hente sockets hos dimac.net på
http://dimac.net/default2.asp?M=FreeDownloads/Menu.asp&P=FreeDownloads/FreeDownloadsstart.asp
så vidt jeg kan se er det gratis
Avatar billede nielle Nybegynder
07. september 2005 - 22:00 #20
Jeg synes at det lyder som om at den allerede er installeret, men at den user der bruges af webserveren blot ikke har rettighederne til at bruge den.

Når det nu er din egen server, så burde du jo kunne rette i privilegierne. Desværre kan jeg ikke lige hjælpe dig med hvordan du gør dette. Det lægger vist op til et spørgsmål over i IIS-kategorien.
Avatar billede malte Nybegynder
07. september 2005 - 22:08 #21
Ok nu virker det
Avatar billede malte Nybegynder
07. september 2005 - 22:09 #22
Det der form? Kan du fortælle mig hvordan jeg sætter det op`?
Avatar billede nielle Nybegynder
07. september 2005 - 22:18 #23
Kan du uddybe lidt mere hvad du mener med at sætte op? Eksemplet skulle virke som det er.
Avatar billede malte Nybegynder
07. september 2005 - 22:20 #24
Det der form eksempel giver fejl, hvis jeg bare lægger det på en side og søger på et domæne
Avatar billede nielle Nybegynder
07. september 2005 - 22:21 #25
Hvordan ser fejlbeskeden ud?
Avatar billede malte Nybegynder
07. september 2005 - 22:23 #26
Socket.TCP error '8000ffff'

Connection timed out

/test2.asp, line 15
Avatar billede malte Nybegynder
07. september 2005 - 22:29 #27
Virker efter jeg ændrede til whois.dk-hostmaster.dk.
Men den melder alle søgninger som taget?
Avatar billede nielle Nybegynder
07. september 2005 - 22:31 #28
Prøv at dette:

<form method="post">
Domæne: <input type="text" value="DomainToTest">
<input type="submit" name="SubmitButton" value="Test">
</form>

<%
function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    Host = "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' =0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function

If Request.Form("SubmitButton") = "Test" Then
    DomainToTest = Request.Form("DomainToTest")

    Resp = doWhois(DomainToTest, "full")
    If Resp <> "" Then
        Response.Write "<pre>"
        Response.Write Resp
        Response.Write "</pre>"
    End If
End If
%>

- og fortæl hvad der udskrives.
Avatar billede malte Nybegynder
07. september 2005 - 22:58 #29
# Hello 85.82.2.5. Your session has been logged.
#
# Copyright (c) 2002 - 2005 by DK Hostmaster A/S
#
# The data in the DK Whois database is provided by DK Hostmaster A/S
# for information purposes only, and to assist persons in obtaining
# information about or related to a domain name registration record.
# We do not guarantee its accuracy. We will reserve the right to remove
# access for entities abusing the data, without notice.
#
# Any use of this material to target advertising or similar activities
# are explicitly forbidden and will be prosecuted. DK Hostmaster A/S
# requests to be notified of any such activities or suspicions thereof.

# Your request is not valid.
# Please note that you can only submit requests for handles and for 2nd
# level domain names under .DK
# Valid request  : DKHM1-DK
# Valid request  : dk-hostmaster.dk
# Invalid request: www.dk-hostmaster.dk
Avatar billede nielle Nybegynder
07. september 2005 - 23:00 #30
du kan ikke tjekke:

www.eksperten.dk

- kun:

eksperten.dk

Alt foran "eksperten.dk" er nemlig ikke en del af domænet - men er i stedet subdomæner.
Avatar billede malte Nybegynder
07. september 2005 - 23:09 #31
stadig det samme
Avatar billede nielle Nybegynder
09. september 2005 - 19:10 #32
Underligt, når jeg prøver virker det som det skal.

Prøv med denne her version af koden, og post så her hvad den viser:

<form method="post">
Domæne: <input type="text" value="DomainToTest">
<input type="submit" name="SubmitButton" value="Test">
</form>

<%
function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    Response.Write "[" & Domain & "]<br"

    Host = "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' =0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function

If Request.Form("SubmitButton") = "Test" Then
    DomainToTest = Request.Form("DomainToTest")

    Resp = doWhois(DomainToTest, "full")
    If Resp <> "" Then
        Response.Write "<pre>"
        Response.Write Resp
        Response.Write "</pre>"
    End If
End If
%>
Avatar billede malte Nybegynder
09. september 2005 - 20:59 #33
[]

# Hello 85.82.2.5. Your session has been logged.
#
# Copyright (c) 2002 - 2005 by DK Hostmaster A/S
#
# The data in the DK Whois database is provided by DK Hostmaster A/S
# for information purposes only, and to assist persons in obtaining
# information about or related to a domain name registration record.
# We do not guarantee its accuracy. We will reserve the right to remove
# access for entities abusing the data, without notice.
#
# Any use of this material to target advertising or similar activities
# are explicitly forbidden and will be prosecuted. DK Hostmaster A/S
# requests to be notified of any such activities or suspicions thereof.

# Your request is not valid.
# Please note that you can only submit requests for handles and for 2nd
# level domain names under .DK
# Valid request  : DKHM1-DK
# Valid request  : dk-hostmaster.dk
# Invalid request: www.dk-hostmaster.dk
Avatar billede nielle Nybegynder
09. september 2005 - 21:47 #34
Doh! Ret fomen fra:

<form method="post">
Domæne: <input type="text" value="DomainToTest">
<input type="submit" name="SubmitButton" value="Test">
</form>

- til:

<form method="post">
Domæne: <input type="text" name="DomainToTest">
<input type="submit" name="SubmitButton" value="Test">
</form>
Avatar billede malte Nybegynder
09. september 2005 - 21:56 #35
ok, nu er den der!
Hvordan kan man gøre beskeden mere simpel ex. domænet er teget eller domænet er frit
Avatar billede nielle Nybegynder
09. september 2005 - 22:07 #36
F.eks. noget i denne stil:

<form method="post">
Domæne: <input type="text" name="DomainToTest">
<input type="submit" name="SubmitButton" value="Test">
</form>

<%
function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    Host = "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' =0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function

If Request.Form("SubmitButton") = "Test" Then
    DomainToTest = Request.Form("DomainToTest")

    If doWhois(DomainToTest, "short") = 0 Then
        Response.Write "Desværre, " & DomainToTest & " er allerede taget."
    Else
        Response.Write "Tillykke, " & DomainToTest & " er stadig frit."
    End If
End If
%>
Avatar billede malte Nybegynder
09. september 2005 - 22:09 #37
Desværre, dsdadtertetrehhgf.dk er allerede taget. ???
Avatar billede nielle Nybegynder
09. september 2005 - 22:13 #38
Ret denne her:

SearchStr = "# No entries found for the selected source."  ' "No entries found"

- til:

SearchStr = "No entries found for the selected source."
Avatar billede malte Nybegynder
09. september 2005 - 22:17 #39
Ok nu er den der!!
Vil du smide et svar?
Mange tak for hjælpen
Avatar billede nielle Nybegynder
09. september 2005 - 22:24 #40
Jeg smider gerne et svar, men jeg synes at du burde dele point mellem mig og busschou på denne her - der var jo faktisk kun 10 sekunder imellem vore to indledende indlæg.

... og et svar :^)
Avatar billede malte Nybegynder
09. september 2005 - 22:47 #41
Jeg kan ikke få den lagt ind på siden?
Den side jeg har er ikke lige sådan at få scriptet integreret i :-(
Avatar billede malte Nybegynder
09. september 2005 - 22:48 #42
mama@counselor.dk
Avatar billede nielle Nybegynder
09. september 2005 - 22:50 #43
Jeg vil helst tage den her på siden i stedet for at gå over email.

Hvordan ser dine problemer ud med at få den lagt ind på din side? Hvad sker der?
Avatar billede malte Nybegynder
09. september 2005 - 22:54 #44
Jeg ville gerne have hjælp til at tilpasse denne form så den virker med resten af scriptet. Scriptet skal helst ligge på en side for sig, ex. script.asp

her er formen
                    <form>
                      <tr align="left" valign="middle">
                        <td width="176"><input type="text" name="textfield" style="width:174px; height:17px; font-family:tahoma; font-size:10px; color:686760; background-color:#FFFFFF  "></td>
                        <td width="55"><select name="select" style="width:50px; height:17px; font-family:tahoma; font-size:10px; color:686760; background-color:#FFFFFF    ">
                          <option>.dk</option>
                        </select></td>
                        <td><input name="image" type="image" src="images/submit.jpg" width="51" height="23"></td>
                      </tr>
                    </form>
Avatar billede nielle Nybegynder
09. september 2005 - 22:57 #45
Hvis form'en og scriptet skal ligge på hver deres side så skal formen indeholde en diefinition af hvor scriptet ligger henne:

<form action="sidenMedScriptet.asp" method="post">
Avatar billede malte Nybegynder
09. september 2005 - 22:57 #46
Og
Hvis man skriver jhgjhjggjhgjg uden .dk siger den at: Desværre, jhgjhjggjhgjg er allerede taget.
Avatar billede malte Nybegynder
09. september 2005 - 23:00 #47
ok, men det giver bare en blank side fordi resten af form værdierne ikke rigtigt passer
Avatar billede nielle Nybegynder
09. september 2005 - 23:01 #48
Du *skal* have ".dk" med i domænet, men dette kan du klare ved at teste omm den er der, og hvis den ikke er der så simpelthen at tilføje den:

function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    if InStr(Domain, ".dk") = 0 Then
        Domain = Domain & ".dk"
    End If

    Host = "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' =0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function
Avatar billede malte Nybegynder
09. september 2005 - 23:13 #49
ok så er den der
Kn du hjælpe mig med den form?
Avatar billede nielle Nybegynder
10. september 2005 - 08:19 #50
=== SidenMedFormen.asp ===

Du skal lige lave nogle mindre ændringer til din form. For det første skal der en action på, og fordet andet så bør du ændre navnene på dine input-fields sådan at de hedder noget mere sigende (det er under alle omstændigheder en dårlig ide at give sin select navnet "select!"):


<form action="sidenMedScriptet.asp" method="post">
<tr align="left" valign="middle">
<td width="176">
<input type="text" name="DomainToTest" style="width:174px; height:17px; font-family:tahoma; font-size:10px; color:686760; background-color:#FFFFFF">
</td>
<td width="55">
<select name="TLD" style="width:50px; height:17px; font-family:tahoma; font-size:10px; color:686760; background-color:#FFFFFF">
<option>.dk</option>
</select>
</td>
<td>
<input type="submit" name="SubmitButton" value="Test">
</td>
</tr>
</form>


=== sidenMedScriptet.asp ===

<%
function doWhois(Domain, Scope)
    Domain = LCase(Domain)

    if InStr(Domain, ".dk") = 0 Then
        Domain = Domain & ".dk"
    End If

    Host = "whois.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."  ' "No entries found"

    set Socket = Server.CreateObject("Socket.TCP")
    Socket.Host = Host & ":43"
    Socket.Open
    Socket.SendLine(Domain)
    Socket.WaitForDisconnect
    Result = Socket.Buffer
    Socket.Close

    if Scope = "short" then
        doWhois = InStr(Result, SearchStr)  ' =0: domain already exist, >0: domain is free for register
    else
        doWhois = Result
    end if

    set Socket = Nothing
end function

If Request.Form("SubmitButton") = "Test" Then
    DomainToTest = Request.Form("DomainToTest") & Request.Form("TLD")

    If doWhois(DomainToTest, "short") = 0 Then
        Response.Write "Desværre, " & DomainToTest & " er allerede taget."
    Else
        Response.Write "Tillykke, " & DomainToTest & " er stadig frit."
    End If
End If
%>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester