funkervogt
Goto Top

Wie kann ich einen HTML Quellcode in Text Datei per Batch oder VB speichern?

Hallo,

ich bin noch relativ neu, was das Programmieren von Batch oder VB-Software betrifft!
Aber ohne Aufgabe kein Lerneffekt! Und da bräucht ich mal Eure hilfe!

ich möchte gern ein kleines Programm schreiben, welches die derzeitige öffentlich IP anzeigt!

Der Ablauf des Programms ist mir eigentlich klar!

1. Laden einer HTML-Seite (z.b. wieistmeineip)
2. Quellcode in Datei zwischenspeichern
3. Schließen des Browsers
4. Auswerten des Quellcodes
5. Anzeigen der IP

Alles soweit nicht das Problem, nur wie bekomme ich den Quellcode
eines X-beliebigen Browsers in eine Textdatei gespeichert?


Wäre schön, wenn Ihr mir da unter die Arme greifen könntet!


Bis denn

FunkerVogt

Content-ID: 142255

Url: https://administrator.de/contentid/142255

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

Tommy70
Tommy70 06.05.2010 um 08:45:50 Uhr
Goto Top
Hallo,

wieso willst du den Umweg über eine Datei gehen?
Wenn du die Daten in eine Variable speicherst (machst du ja beim Laden ohnehin schon) kannst du auch aus dieser Variable die IP auslesen.
FunkerVogt
FunkerVogt 06.05.2010 um 08:48:37 Uhr
Goto Top
Ok, kann man auch und wie könnte ich das dann realisieren?

Das mit dem Zwischenspeichern war für erst mal der schnelle Weg
aber wenn es noch anders geht! Dann wäre ich für Vorschläge dankbar!


Wie sehen denn für die Variante die Befehlszeilen aus!
77559
77559 06.05.2010 um 08:50:23 Uhr
Goto Top
Moin moin,

mit Batch alleine klappt das nicht, du brauchst dann externe Programme wie zum Beispiel wget.exe oder Zugriff auf VB??
Wobei du offengelassen hast hast, was du mit VB-Software meinst:
  • VBA
  • VBS
  • VB1-6
  • VB.Net
Das Zwischenspeichern in einer Datei brauchst du eigentlich nur bei wget.

Gruß
LotPings
dog
dog 06.05.2010 um 10:15:52 Uhr
Goto Top
Der Internet Explorer lässt sich eigentlich recht gut scripten.
http://msdn.microsoft.com/en-us/library/aa752084%28VS.85%29.aspx
Wenn du lange genug suchst kommst du sicher auch an das DOM der Seite, was Schritte 2-4 überflüssig macht.
FunkerVogt
FunkerVogt 06.05.2010 um 10:31:04 Uhr
Goto Top
Na ich bevorzuge:

VB-Script
und VB6

Und das mit der Wget probier ich mal!


Gibt es nicht irgendeinen Befehlssatz der mein Problem lösen könnte?
bastla
bastla 06.05.2010, aktualisiert am 18.10.2012 um 18:42:01 Uhr
Goto Top
Hallo FunkerVogt!

Hier hatten wir mal etwas zu diesem Thema ...

Grüße
bastla
77559
77559 06.05.2010 um 14:03:06 Uhr
Goto Top
Moin bastla,

wobei IMO wieistmeineip.de so mit Werbung überfrachtet ist, dass ich sie nicht empfehlen würde.
Deutlich besser ist whatismyip.com die wirklich nur die WAN-IP zurückgibt. Bei Rob van der Woude' Scriptintg Pages gibt es eine VBscript-Function die das über das DOM ausliest.

Mit dieser Site und wget.exe ist es auch in Batch recht einfach:
wget http://www.whatismyip.com/automation/n09230945.asp -O MyWanIP.txt
set /P MyWanIP=<MyWanIP.txt
Set MyWanIP

Gruß
LotPings

Wobei man immer wieder empfehlen muss, doch bitte mal unten auf dieser Seitenachzusehen, ob da nicht schon eine Lösung bereitliegt face-sad
bastla
bastla 06.05.2010 um 14:45:20 Uhr
Goto Top
Hallo LotPings!
wobei IMO wieistmeineip.de so mit Werbung überfrachtet ist, dass ich sie nicht empfehlen würde.
Habe ich auch nicht - die in meinem Batch-/Script-Vorschlag im verlinkten Beitrag abgefragte Seite http://checkip.dyndns.com/ funktioniert weiterhin wie beschrieben (und die ist definitiv nicht überfrachtet face-wink) ...

Grüße
bastla
77559
77559 06.05.2010 um 14:52:05 Uhr
Goto Top
Habe ich auch nicht - die in meinem Batch-/Script-Vorschlag im verlinkten Beitrag abgefragte Seite http://checkip.dyndns.com/ funktioniert weiterhin wie beschrieben (und die ist definitiv nicht überfrachtet
Mea culpa face-sad
der Thread war so lang, ich hab wohl irgendwann den Überblick verloren.

Gruß0
LotPings
bastla
bastla 06.05.2010 um 17:43:18 Uhr
Goto Top
Hallo LotPings!
Mea culpa face-sad
Soll mal nix Schlimmeres passieren. face-smile

Im Vergleich zu der von Dir genannten Seite trägt übrigens die "dyndns"-Variante immer noch ganz schön dick auf ... face-wink

Grüße
bastla
FunkerVogt
FunkerVogt 11.05.2010 um 12:51:16 Uhr
Goto Top
Soo,

ich hab das ganze in Kombination von dem genialen Programm wget.exe, dem Quelltext von Lotpings und ein bischen VB6 hinbekommen! Und funktioniert soweit bestens!

Das einzige Problem was ich noch habe, ist kein WAN vorhanden also steht kein IP
Wert in der .txt Datei schreibt mir VB --> Lesen hinter Dateiende<-- und bricht mit
Fehlermeldung ab! Wenn WAN vorhanden braucht das Script nicht länger als 2 sec!
Also hab ich VB auf 2sec Pause eingestellt, das muß ich noch irgenwie abgleichen
auf die Laufzeit von der wget.exe(Wenn kein WAN-Vorhanden! Hab aber keine Vorstellung wie!

Aber sonst geht es wunderbar!


Ich danke Euch allen vielmals!
Tommy70
Tommy70 11.05.2010 um 13:11:09 Uhr
Goto Top
Zitat von @FunkerVogt:
Soo,

ich hab das ganze in Kombination von dem genialen Programm wget.exe, dem Quelltext von Lotpings und ein bischen VB6 hinbekommen!
Und funktioniert soweit bestens!

Das einzige Problem was ich noch habe, ist kein WAN vorhanden also steht kein IP
Wert in der .txt Datei schreibt mir VB --> Lesen hinter Dateiende<-- und bricht mit
Fehlermeldung ab!

Aber sonst geht es wunderbar!


Ich danke Euch allen vielmals!

Dafür gibt es z.bsp. die Fehlerbehandlung.
Oben in der Prozedur z.Bsp
On Error GoTo Dateifehler
rein
Und unten in der Prozedur dann in etwa so.
Exit Sub
Dateifehler:
if err=44 then
 "mach was"  
else
 "mach was anderes"  
end if
Wobei die zahl bei "if err=" die Errornummer deines Fehlers sein muss.
Natürlich gibts auch noch die Möglichkeit das ganze anders zu programmieren damit der Fehler erst schon gar nicht auftritt ;)
FunkerVogt
FunkerVogt 11.05.2010 um 21:32:33 Uhr
Goto Top
Schöne Idee Tommy70!

ich hab dann (nach Deiner Anregung) einfach auf "On Error Resume Next" zurückgegriffen!
Funktioniert auch wunderbar! Ist natürlich klar, wenn Ihr den Quelltext nicht
habt, könnt Ihr auch nicht wissen was ich da zusammengefummelt habe!

Bei interesse, kann ich Ihn ja mal posten!
Müßte dann aber noch Fragmente einiger Versuche entfernen!


Bis denne!
77559
77559 11.05.2010 um 23:23:45 Uhr
Goto Top
Hallo FeuerVogt,
hab ich das jetz richtig verstanden das du aus vb heraus wget.exe mit einer temporären Datei aufrufst?

Dann doch lieber einen vb.net Schnipsel den du auch ganz ohne extra Compiler bei installiertem Dot.Net Framework mit vbc.exe kompilieren kannst.
Der steckt unterhalb von "%Systemroot%\Microsoft.NET\Framework\" in einem Versionsabhängigen Unterverzeichnis ( v1.0.3705 / v1.1.4322 / v2.0.50727 / v3.0 / v3.5 ..)

Dieser vb-code gibt nur die WanIP auf der Kommadozeile aus:
Class Sample
  Public Shared Sub Main()
    Dim WC As New System.Net.WebClient
    System.Console.WriteLine(System.Text.Encoding.ASCII.GetString( _
      WC.DownloadData( "http://whatismyip.com/automation/n09230945.asp")))  
    WC.Dispose()
  End Sub 'Main  
End Class 'Sample  

Gruß
LotPings