online/offline Status einer Website

cybergnom

Mitglied
Hallo,

gibt es eine Möglichkeit, den online/offline-Status einer Website per VB abzufragen?
Wenn ja, wie ist das möglich? Habe im Net irgendwie nix dazu gefunden :(

Wäre nett, wenn mir jemand helfen könnte!

MfG
cyber
 
Mit dem INet-Control geht das. Damit kannst Du eine URL öffnen und bekommst (wenn erreichbar) den HTML-Quelltext zurück:
Code:
Dim htmlCode As String

htmlCode = Inet1.OpenURL("http://www.tutorials.de/index.php")

If htmlCode <> "" Then
    'URL ist erreichbar
Else
    'URL ist nicht erreichbar
End If
Das INet-Control findest Du in der Komponentenpalette unter "Microsoft Internet Transfer Controls 6.0".
 
Tadaaaaaaaa:

Etwas viel text, aber naja!

Code:
Beschreibung
Dieser Tipp prüft eine Web-Adresse auf Gütligkeit. 
Zunächst wird geprüft, ob es sich um eines der Protokolle 
http, ftp, new, gopher oder telnet handelt(otpional).
Dann wird geprüft, ob es sich um einen Alias-Domainnamen 
oder um eine IP-Adresse handelt (xxx.xxx.xxx.xxx).
Handelt es sich um einen Domainnamen (z.B. [url]www.vbarchiv.de/url])
wird die TopLevel-Domain anhand einer umfangreichen Vorgabeliste geprüft.


'Prüft eine Web-Adresse auf Gültigkeit
Public Function Check_Web_Adress(sWebAdress As String, _
  Optional bCheckForProtocol As Boolean = False) As Boolean
    
  Dim bGoodAdress As Boolean
  Dim sTopLevelDomainsArray() As String
  Dim sTopLevelDomains As String
  Dim sProtocolsArray() As String
  Dim sProtocols As String
  Dim i As Long
  Dim myProtocol As String
  Dim Splices() As String
  Dim Splices2() As String
  Dim Splices3() As String
  Dim Splices4() As String
  Dim myServer As String
  Dim isIPAdress As Boolean
    
  sWebAdress = LCase(sWebAdress)    
  bGoodAdress = False
    
  sTopLevelDomains = "com,net,edu,arpa,org,gov,museum," + _
    "biz,info,pro,name,aero,coop,ac,ad,ae,af,ag,ai,al," + _
    "am,an,ao,aq,ar,as,at,au,aw,az,ba,bb,bd,be,bf,bg," + _
    "bh,bi,bj,bm,bn,bo,br,bs,bt,bv,bw,by,bz,ca,cc,cd," + _
    "cf,cg,ch,ci,ck,cl,cm,cn,co,cr,cu,cv,cx,cy,cz,de," + _
    "dj,dk,dm,do,dz,ec,ee,eg,eh,er,es,et,fi,fj,fk,fm," + _
    "fo,fr,ga,gd,ge,gf,gg,gh,gi,gl,gm,gn,gp,gq,gr,gs," + _
    "gt,gu,gw,gy,hk,hm,hn,hr,ht,hu,id,ie,il,im,in,io," + _
    "iq,ir,is,it,je,jm,jo,jp,ke,kg,kh,ki,km,kn,kp,kr," + _
    "kw,ky,kz,la,lb,lc,li,lk,lr,ls,lt,lu,lv,ly,ma,mc," + _
    "md,mg,mh,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw," + _
    "mx,my,mz,na,nc,ne,nf,ng,ni,nl,no,np,nr,nu,nz,om," + _
    "pa,pe,pf,pg,ph,pk,pl,pm,pn,pr,ps,pt,pw,py,qa,re," + _
    "ro,ru,rw,sa,sb,sc,sd,se,sg,sh,si,sj,sk,sl,sm,sn," + _
    "so,sr,st,sv,sy,sz,tc,td,tf,tg,th,tj,tk,tm,tn,to," + _
    "tp,tr,tt,tv,tw,tz,ua,ug,uk,um,us,uy,uz,va,vc,ve," + _
    "vg,vi,vn,vu,wf,ws,ye,yt,yu,za,zm,zr,zw"

  sTopLevelDomainsArray = Split(sTopLevelDomains, ",")    
  sProtocols = "http,ftp,news,gopher,telnet"
  sProtocolsArray = Split(sProtocols, ",")    
    
  Splices = Split(sWebAdress, "://")
  If UBound(Splices) > 0 Then
    myProtocol = Splices(0)
  End If

  'Protkokoll prüfen
  If bCheckForProtocol = True Then
    For i = 0 To UBound(sProtocolsArray)
      If myProtocol = sProtocolsArray(i) Then
        bGoodAdress = True
        Exit For
      End If
    Next
        
    If bGoodAdress = False Then
      Check_Web_Adress = False
      Exit Function
    End If
  End If    
    
  If UBound(Splices) > 0 Then
    myProtocol = myProtocol + "   "
  End If
  sWebAdress = Mid(sWebAdress, Len(myProtocol) + 1, _
    Len(sWebAdress))
    
  Splices2 = Split(sWebAdress, "/")
  Splices3 = Split(Splices2(0), ":")
  myServer = Splices3(0)
  Splices4 = Split(myServer, ".")
    
  If UBound(Splices4) = 3 Then
    'Prüfen, ob IP-Adresse
    isIPAdress = True
    For i = 0 To 3
      If IsNumeric(Splices4(i)) Then
        If Splices4(i) > 255 Then
          isIPAdress = False
        End If
      Else
        isIPAdress = False
      End If
    Next
        
    If isIPAdress = True Then
      Check_Web_Adress = True
      Exit Function
    End If
  End If
  
  'TopLevel-Domain prüfen
  For i = 0 To UBound(sTopLevelDomainsArray)
    If Splices4(UBound(Splices4)) = _
     sTopLevelDomainsArray(i) Then
      bGoodAdress = True
      Exit For
    End If
  Next
  
  Check_Web_Adress = bGoodAdress   
End Function

Ich hoffe, du findest dich damit zurecht :-)



Lirion: Bitte in den Code-Tags Zeilenumbrüche verwenden, weil das nicht automatisch gemacht wird.
Aarisch: Ok, danke für deinen Rat.
 
Zuletzt bearbeitet:
Hallo Aarisch,

dein Code sagt mir nur, ob eine Domain gültig ist, oder nicht.
Er sagt mir aber ncht, ob die angegebene Domain online ist oder nicht...

Aber trotzdem Danke für Deine Mühe!

MfG
cyber
 
Original geschrieben von Lirion
Mit dem INet-Control geht das. Damit kannst Du eine URL öffnen und bekommst (wenn erreichbar) den HTML-Quelltext zurück:
Code:
Dim htmlCode As String

htmlCode = Inet1.OpenURL("http://www.tutorials.de/index.php")

If htmlCode <> "" Then
    'URL ist erreichbar
Else
    'URL ist nicht erreichbar
End If

Das INet-Control findest Du in der Komponentenpalette unter "Microsoft Internet Transfer Controls 6.0".


Frage:¨


Ist denn die Fehlermeldung die der IE ausgibt nicht auch code? So ist die Page doch niemals OFFLINE :rolleyes:
 
Ist denn die Fehlermeldung die der IE ausgibt nicht auch code? So ist die Page doch niemals OFFLINE
Was meinst Du damit? Die Fehlermeldung, die ein Browser ausgibt, kommt nicht vom Server...
Der Server liefert nur einen Statuscode über das HTTP-Protokoll (z.B. "404 File Not Found") und anhand dessen kann man das Vorhandensein einer Seite überprüfen.
 
Original geschrieben von Lirion
Was meinst Du damit? Die Fehlermeldung, die ein Browser ausgibt, kommt nicht vom Server...
Der Server liefert nur einen Statuscode über das HTTP-Protokoll (z.B. "404 File Not Found") und anhand dessen kann man das Vorhandensein einer Seite überprüfen.

Fehlerseiten können auf den Servern selbst gespeichert sein und sind ja wohl deshalb verschieden.

Gerade der 404, dass ist ja NOT FOUND und die ist vom Server definiert
 
Ich habe doch nur gemeint, wenn man überprüft ob eine Seite Online ist und im Browser ein Fehlermeldung ausgegeben wird ob dann nicht dieser Code als Antwort erkannt werden könnte

Aber will da nichts behaupten, ich weiss es ja nicht
 
Der Server liefert nur einen Statuscode über das HTTP-Protokoll

Der Thread ist zwar alt, aber ich hab ma ne frage:

Gibt es ne möglichkeit genau diesen Statsucode auszulesen? Weil es gibt ja auch noch andere "nummern" wie timeout etc, ist das irgentwie möglich?
 

Neue Beiträge

Zurück