Laden...

[gelöst] HTML Inhalt einer Internetseite (mit Authentifizierung) in String speichern

Erstellt von Trekki1990 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.385 Views
Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 14 Jahren
[gelöst] HTML Inhalt einer Internetseite (mit Authentifizierung) in String speichern

Hallo liebe Community!

Folgendes Problem:

Ich habe einen Link --> http://128.0.0.1:63660/ARPTable.asp
Eigentlich mehrere wo nur die IP sich ändert.

Dies ist die ARPTabelle eines Routers, der mit Username und Passwort gesichert ist.
Username und Passwort sind (so gut wie) immer gleich, eben nur die IP ändert sich
in dem Link.

Jetzt würde ich gern den Inhalt dieser Seite in einen String, zur weiteren
Verwendung, speichern.

Vielleicht hat jemand Lösungsansätze für mich, wäre sehr sehr dankbar!!!

Gruß Trekki

1.696 Beiträge seit 2006
vor 14 Jahren

Hallo,

vielleicht hilft dir das: WebClient mit HTTP-POST- und Cookie-Unterstützung

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

K
593 Beiträge seit 2007
vor 14 Jahren

Hallo Trekki1990,

also das was vbprogger gepostet hat ist schon ganz gut denke ich, nur habe ich die Frage nicht ganz gesehen...^^ Hast du ein Problem damit das sich die IPAdresse ändert? Dann nimm die MAC-Adresse und lass es danach auschlösseln..^^

Viele Grüße

Kaji

Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 14 Jahren

@vbprogger Danke für den Link!

Hallo Kaji!

Nein ich habe kein Problem damit, dass sich der Link ändert.

Ich umschreibe mein Problem mal noch ein bisschen genauer:

Circa 30 Router (Anzahl ist variabel) stehen an verschiedenen Orten in Deutschland.
Alle haben die selben Anmeldedaten, eben nur verschiedene IPs über die ich die Router
anspreche.

Beim Webinterface des Routers kann man auf eine Seite gehen wo es eine Übersichtstabelle
der angeschlossenen Clients (IP + MAC) gibt (auch ARP-Tabelle genannt).

Das einzige was ich machen muss ist zu überprüfen, ob sich der Inhalt dieser Seite
verändert, damit man rausfindet wir illegal seine Geräte an den Router stöpselt.

Mein Programm zieht nun in einem bestimmten Zeitintervall den Inhalt der Seiten in einen
String und checkt ab ob der Inhalt sich verändert hat.
Mehr ist nicht vonnöten. Keine Cookies, nix.

Das Hautproblem habe ich damit, dass man sich Autentifizieren muss
und wie ich an den Inhalt dieser Seite komme ohne das mit

string a = webBrowser1.DocumentText;

zu machen.

Ich hoffe jetzt ist einiges klarer.

2.891 Beiträge seit 2004
vor 14 Jahren

Hallo Trekki1990,

Das Hautproblem habe ich damit, dass man sich Autentifizieren muss

Und wie sieht die Authentifizierung aus? WebFormular zum ausfüllen? Dann sollte dir der WebClient mit HTTP-POST- und Cookie-Unterstützung helfen (weil eben Cookies gespeichert werden müssen und das Abschicken üblicherweise mittels Post geschieht).

Falls nicht und es eine "normale" Anmeldung (k.a. wie der genaue Begriff ist), sollte dir der WebClient mit der Methode WebClient.DownloadString helfen. Und vorher musst du den WebClient.Crendentials noch den (?) nötigen NetworkCredential zuweisen.

Gruß,
dN!3L

Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 14 Jahren

@dN!3L danke für deine Antwort.

Beim Login geht ein Dialogfenster auf, mit Username und Passwort.
Also kein Webformular.

2.891 Beiträge seit 2004
vor 14 Jahren

Beim Login geht ein Dialogfenster auf, mit Username und Passwort.

Also dann die zweite Variante 😉
Schon ausprobiert, ob's geht?

Gruß,
dN!3L

S
34 Beiträge seit 2009
vor 14 Jahren

Es sollte doch funktionieren Deine Htaccess Authentifizierung mit einem WebRequest einzulesen und dann den gewünschten Inhalt zu splitten, mit 20 Zeilen sollte das eigentlich erledigt sein ?


NetworkCredential networkCredential = new NetworkCredential("user","pass");
WebRequest webRequest = WebRequest.Create("http://www.domain.de/s.html");
webRequest.Credentials = networkCredential;
2.891 Beiträge seit 2004
vor 14 Jahren

Oder - wie bereits vorgeschlagen - mit dem System.Net.WebClient (wo auch diese drei Zeilen reichen):


WebClient webClient = new WebClient();
webClient.Credentials = new NetworkCredential("user","pass");
string content = webClient.DownloadString("http://www.domain.de/s.html");

Gruß,
dN!3L

S
34 Beiträge seit 2009
vor 14 Jahren

Oder - wie bereits vorgeschlagen - mit dem
>

Naja, bekanntlich führen mehrere Wege nach Rom !?

Ich weiss zwar nicht was mit den ermittelten Daten noch passieren soll, zb. Einarbeitung der Daten in ein grösseres C# Projekt ?

Sollte es aber kein Teil eines grösseren Projektes werden, zb. nur die Speicherung der Daten in einer Datenbank.
Würde ich solche Dinge lieber auf einer Ebene machen und es mit einer Scriptsprache wie Perl oder PHP erledigen.

Wie gesagt, es kommt darauf an was jetzt mit den Daten passieren soll.

Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 14 Jahren

Vielen Dank für eure guten Antworten!!!

Ich denke damit komme ich erstmal klar.

@semtex

Also ein riesen Projekt ist es nicht, eher temporärer Natur.
Die Router muss ich über ein paar Wochen beobachten.
Datenbank werde ich natürlich dahinterklemmen.
Und Logging ist dann noch dabei, mehr nicht.

Gruß Trekki