Schnelles Pingen einer Webseite



  • Hallo,

    wollte frage, wie man sehr schnell eine Seite auf existenz prüfen kann?

    Momentan benutze ich

    private bool CheckWebsite(string p_sWebsite)
            {
                try
                {
                    HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(p_sWebsite);
                    httpReq.AllowAutoRedirect = false;
                    httpReq.Timeout = 1;
                    HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
                    MessageBox.Show("Status for '" + p_sWebsite + "': " + httpRes.StatusCode.ToString());
    
                    if (httpRes.StatusCode == HttpStatusCode.OK)
                    {
                        httpRes.Close();
                        return true;
                    }
                    httpRes.Close();
                    return false;
                }
                catch (WebException ex)
                {
                    return false;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
    

    aber irgendwie geht das mir viel zu langsam. Die Methode soll so schnell wie möglich sein.

    Danke, Gruß, Garry



  • "Seite auf existenz prüfen".
    Was genau meinst du?
    Das es den Host gibt? Das auch Port 80 offen ist? Das auf Port 80 ein http-Server läuft?

    Je nach Host kann es halt sein, dass die Anworten lange auf sich warten lassen. Je nach anzahl der zu sendenden und empfangenden Pakete kann das sehr "lange" sein.
    Prinzipiell würde sich da eine parallele abarbeitung mehrere Seiten anbieten, dadurch wird der Durchsatz erhöht und auch die Netzwerk-Bandbreite besser genutzt.
    Zude, gibt es bei http neben dem GET auch ein HEAD Kommando, damit wird nur der Header ohne die eigentlichen Daten abgerufen, was auch Zeit und Bandbreite spart.

    Solltest allerdings aufpassen, welche Seiten du scannst und auch wie häufig, sonst kann es schnell ärger geben 😉


Anmelden zum Antworten