Avatar billede jones_net Nybegynder
14. august 2003 - 13:44 Der er 12 kommentarer og
1 løsning

Checke om URL'en findes via ASP

Hejsa

Jeg er ved at lave et lille overvågningsprogram, så vi får besked, hvis vores servere fejler.
Indtil videre har vi levet fint med ping, men nu har vi været ude for, at det kun er IIS'en på vores servere der dør, og så svarer den jo stadig på ping, selvom den egentlig ikke virker.

Nu vil jeg så høre, om det er muligt at kontrollere eksistensen af en html side - altså finde ud af, om jeg får en fejl, når jeg tjekker www.microsoft.com/index.html.

Hvis siden kommer, så får ingen fejl. Når siden ikke findes, så kommer der en fejl tilbage.


Jeg vil helst bruge ASP, men hvis JavaScript er løsningen, så er den også velkommen:-)

/J
Avatar billede grunken Nybegynder
14. august 2003 - 13:49 #1
lavede den her til et spørgsmål for et stykke tid siden prøv og se om den lever op til dine forventninger!

<%
Function testHTTP (url)
dim objXMLHTTP, resultat, html

Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.Open "GET", URL, false 
  On Error Resume Next
  objXMLHTTP.Send

  If Not err.number <> 0 Then
    resultat = 1
  Else
    resultat = 0
  End If

  Set objXMLHTTP = Nothing
  testHTTP = resultat
End Function


If testHTTP(request.querystring("http")) = 1 Then
  response.write "siden er oppe" 'eller et billede eller hvad du vil :)
Else
  response.write "siden er nede" 'eller et billede eller noget
End If
%>
Avatar billede grunken Nybegynder
14. august 2003 - 13:52 #2
selvfølgelig er den her lavet som en separart ved klik på et link, som så checker!

og syntaxen på linket er til at regne ud

<a href="check.asp?http=http://www.grunken.dk/index.html">Check</a>
Avatar billede jones_net Nybegynder
14. august 2003 - 14:44 #3
Det virker til dels...

Den finder fint ud af, om domænet findes eller ej, men den siger "siden er oppe" selvom den får en "fejl 404 - siden findes ikke" tilbage...

Er det muligt at rette det til, så man kan fange disse 404'ere og sætte dem til at være nede?

/J
Avatar billede mm12010 Nybegynder
14. august 2003 - 15:50 #4
og hvis url'en ikke begynder med 'http' viser den siden er nede
Avatar billede jones_net Nybegynder
14. august 2003 - 17:00 #5
mm12020>> det betyder ikke noget for mig, jeg sørger for at folk taster det rigtige ind på en anden måde, og så klarer den automatisk http://

/J
Avatar billede mm12010 Nybegynder
14. august 2003 - 17:02 #6
klart :o)

ville bare lige nævne det
Avatar billede jones_net Nybegynder
14. august 2003 - 17:06 #7
selvfølgelig - jeg havde ikke selv testet det, men da jeg allerede kræver at de taster det rigtigt ind, så betød det ikke noget:-)

/J
Avatar billede jones_net Nybegynder
15. august 2003 - 14:10 #8
grunken - smider du ikke lige et svar?

/J
Avatar billede jones_net Nybegynder
17. september 2003 - 11:49 #9
grunken - smider du ikke lige et svar?

/J
Avatar billede jones_net Nybegynder
14. oktober 2003 - 09:19 #10
grunken - smider du ikke lige et svar?

Sidse gang jeg spørger - derefter lukker jeg... Hvis du senere vil have dine points, siger du bare til:-)

/J
Avatar billede grunken Nybegynder
14. oktober 2003 - 12:27 #11
Mærkeligt, jeg har ikke fået en eneste mail på den her tråd, men faldt tilfældigvis over den, undskyld den lange ventetid! ;)
Avatar billede jones_net Nybegynder
14. oktober 2003 - 15:23 #12
Jeg havde tænkt mig at holde den åben en måneds tid, så du havde mulighed for at svare, så du havde nok opdaget det alligevel:-)

Tak for hjælpen!

/J
Avatar billede thesurfer Nybegynder
04. januar 2004 - 13:35 #13
Jeg ved ikke om det er et bedre script, men det bruger selve .Status til objektet..
Muligvis fundet hos 4guysfromrolla.com :

<%
'Timeout values in milliseconds
lngResolveTimeout = 500
lngConnectTimeout = 500
lngSendTimeout = 500
lngReceiveTimeout = 500

strTestUrl = "http://www.microsoft.com/nonexistingpage.html"

Set objHttpRequest = CreateObject("MSXML2.ServerXMLHTTP")
With objHttpRequest
  .SetTimeouts lngResolveTimeout, lngConnectTimeout, lngSendTimeout,
lngReceiveTimeout
  .Open "GET", strTestUrl
  .Send
  Select Case .Status
      Case 200 'No problem!
        Response.Write strTestUrl & " is a valid, available URL"
      Case 404 'Not found
        Response.Write strTestUrl & " could not be found (404 Error)"
      Case Else 'Some other problem
        Response.Write "An unexpected HTTP Status value was returned: " &
.Status
  End Select
End With
Set objHttpRequest = Nothing
%>
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