Avatar billede nielle Nybegynder
22. august 2003 - 09:53 Der er 3 kommentarer og
1 løsning

Langsom domænetester

Hej alle sammen,

Jeg er pt. ved at lave en domænetester og er kommet frem til følgende:

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

  Host = ""
  if InStr(Domain, ".dk") <> 0 then
    Host = "www.dk-hostmaster.dk"
    SearchStr = "# No entries found for the selected source."
  elseif InStr(Domain, ".com") <> 0 or InStr(Domain, ".net") <> 0 then
    Host = "rs.internic.net"
    SearchStr = "No match for "
  elseif InStr(Domain, ".org") <> 0 then
    Host = "whois.opensrs.net"
    SearchStr = "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"
  elseif InStr(Domain, ".se") <> 0 then
    Host = "whois.nic-se.se"
    SearchStr = "No data 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: domain is free for register
    else
      doWhois = Result
    end if
    set Socket = nothing
  else
    doWhois = -1  ' Unknown TLD
  end if
end function %>

<table border="1" width="50%">

<tr>
<th>TLD</th>
<th>Før</th>
<th>Efter</th>
<th>Difference</th>
</tr>

<%
All_TLD = "dk,com,net,org,biz,info,as,nu,ws,se"
TLD = split(All_TLD, ",")

for i=LBound(TLD) to UBound(TLD)
  FullDomain = "NogetEtEllerAndet." & TLD(i)
  Time1 = Time()
  Calc_doWhois = doWhois(FullDomain, "short")
  Time2 = Time()
  TimeDiff = DateDiff("s", Time1, Time2) %>
<tr>
<td align="center"><% =TLD(i) %></td>
<td align="center"><% =Time1 %></td>
<td align="center"><% =Time2 %></td>
<td align="center"><% =TimeDiff %></td>
</tr>
<%
next %>
Avatar billede oneskarvonly Nybegynder
22. august 2003 - 09:57 #1
Ja ok og....?
Avatar billede nielle Nybegynder
22. august 2003 - 09:59 #2
Problemet er nu at den er lidt vel langsom. Det skyldes bl.a. at den søger på .ws domæner og at deres server sagtens kan være op til 6-8 sekunder om at svare. Dette domæne er det værste, men andre domæner har også teet sig fra tid til anden.

Jeg vi selvfølgelig gerne have gjort den hurtigere, og jeg vi derfor gerne vide om:

1) Findes der en metode som er hurtigere end at bruge Socket.TCP?

2) Er det muligt at lave en løsning i tråde. Sådan at jeg sender en tråd af sted på hver TLD og dermed søger dem samtidigt?

3) Findes der nogle hurtigere whois servere for de TLD'er jeg søger på?
Avatar billede nielle Nybegynder
22. august 2003 - 10:41 #3
Et relateret spørgsmål: Hvis en af forespørelserne timer ud, så fejler hele scriptet. Hvordan catcher jeg sådan en exception i ASP?
Avatar billede nielle Nybegynder
15. oktober 2003 - 18:02 #4
Lukker og sukker.
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