Wenn Mobiltelefone die Melodie erkennen

Hinter dem praktischen Handydienst "Musicfinder" steckt eine ausgeklügelte Technologie.

Von Simone Luchetta

Neulich in einer Bar erregte mitten im Gespräch ein Musikstück, das uns berieselte, meine gesamte Aufmerksamkeit: Wie hiess der Song schon wieder? Es wollte mir einfach nicht einfallen. In schierer Verzweiflung fragte ich meinen Begleiter. Wortlos zückte dieser sein Handy, tippte darauf herum und hielt das Telefon in Richtung Boxen. Was tut der Mensch da? Wenige Sekunden später erhielt er ein SMS: «Das war ‹Loulou› von Stéphane Pompougnac.» Er lächelte triumphierend. Ich war beeindruckt.

Zauberei? Fast. Mein Gegenüber nutzte eine Dienstleistung namens Musicfinder, die Sunrise seit ein paar Monaten mit Directmedia zusammen anbietet. Wer ein Stück, das er oder sie gerade hört, nicht kennt, aber gerne würde, wählt 076 333 66 33, fängt die Musik rund 20 Sekunden mit dem Handy in Richtung Musikquelle auf, bis der Anruf abbricht, und erhält im Nu ein SMS mit den gewünschten Angaben. Eine Abfrage kostet 1 Franken plus Verbindungsgebühr.

Der Dienst ist laut Sunrise «ein durchschlagender Erfolg», Nutzungszahlen bleiben jedoch unter Verschluss. Orange überlegt, ebenfalls einen solchen Service anzubieten, bei Swisscom ist kurzfristig nichts Derartiges geplant. Macht nichts: Auch Swisscom- und Orangekunden können Musicfinder beanspruchen, der übrigens mit allen Handys funktioniert.

Das Erstaunliche ist, dass die Hexerei fast immer klappt. Ob Autechre, Lambchop oder Saint Etienne, Musicfinder erkennt den Song. Passen musste er hingegen bei Franz Ferdinand, an Konzerten, bei Ländlern und Klassiktiteln. Auch selbst gesungene Lieder erkennt er nicht.

Digitale Fingerabdrücke

Was steckt hinter dem Spuk? Hält sich Sunrise irgendwo in Bangalore ein paar Tausend Musik liebende Inder am Fliessband, die für ein Taschengeld die Anfragen per SMS beantworten? Falsch. Die Musikerkennung per Handy basiert auf einer Technologie der britischen Firma Shazam. Diese hat im Londoner Untergrund ein Netz von 80 Rechnern, das rund um die Uhr Anrufe aus der ganzen Welt empfängt. In Deutschland und England bietet die Swisscom-Teilhaberin Vodafone den Dienst an, weiter gibts ihn in Österreich, Griechenland, Italien, Australien und Japan. Während wir die Handys in die Luft halten, schneidet London mit, erstellt einen so genannten digitalen Fingerabdruck des Titels und vergleicht ihn mit einer Datenbank. Eine halbe Minute später kommt das SMS mit der Antwort. Die laufend wachsende Datenbank umfasst momentan 1,7 Millionen Stücke. Ziel ist es, jeden verfügbaren Titel aufzunehmen, von neuen CDs wird der Fingerprint noch vor dem Erscheinen genommen, versichert Shazam.

Das Prinzip des digitalen Fingerabdrucks ist rasch erklärt: Das Programm analysiert das Frequenzspektrum der Musik. Für die Identifizierung zählt nicht nur der zeitliche Ablauf, sondern auch Klangfarbe, Instrumentierung, Tempo und Dynamik eines Stücks. Damit liefert das Programm den einzigartigen Fingerabdruck.

Die Datenbank ist das Kapital von Shazam. Ohne sie ist ein Fingerprint so viel wert wie ein echter Fingerabdruck ohne Verbrecherkartei. Die Firma Gracenote, die mit Philips zusammen in der Musikerkennung forscht, soll laut Website gar über vier Millionen Abdrücke verfügen.

Übrigens: Erkennt Musicfinder einmal ein Stück nicht, ist das ein Frust, das erhaltene SMS ist dafür gratis.

Firewalls

Eine Firewall ist eine logische Vorrichtung, die ein privates Netz vor dem öffentlichen Teil, dem Internet oder aber auch verschiedenen Segmenten im in-ternen Netz voreinander schützt.
Meistens ist so eine Firewall ein eigenständiger PC, der zwischen zwei Netze gestellt wird, demzufolge braucht er auch zwei Netzwerkschnittstellen.

_
                                                |------|_| PC 1
                  <b>_</b><b>_              </b>      |    _
                 /             ___    |--|     |---|_| PC 2
                ( Internet o---|___|---|  |-----|      _
                 <b>_</b><b>_/    Modem   |</b>|     |-----|_| PC 3
                                     Firewall   lokales Netzwerk

Der einzige PC im LAN, der über alle Informationen und Zugang zum Internet verfügt ist die Firewall. Wenn z.B. PC1 ein File aus dem Internet downloaden möchte, wird es immer zuerst auf die Firewall geladen, erst dann kann PC1 auf das File zugreifen. Ein direkter Download auf PC1 ist nicht möglich.

Zwei der meistgebrauchten Firewalls ist die Paketfilter-Firewall und die Pro-xy-Firewall. Eine Filter-Firewall überprüft pausenlos den Netzwerkverkehr und filtert nach definierten Regeln Pakete. Die Regeln werden in einem Konfigura-tionsfile definiert. Je nach dem, wie die Regeln definiert wurden, wird das Paket angenommen oder abgewiesen.

Ist ein Proxy Server in einem Netzwerk angebracht, so dient er zur Verwaltung der herausgehenden Pakete. Dabei wird das sogenannte IP-Masqerading ange-wandt. Es bewirkt, dass jede Workstation, die über den Proxy geht, die IP des Proxys erhält. Somit sind die Workstaions direkt mit dem Proxyserver verbun-den, jedoch nicht mit dem Netz, mit dem der Proxy verbunden ist.

Nicht nur die Funktionalität der Firewall wird unterschieden, auch das Pro-dukt selber. So gibt es Firewalls für Windows wie auch für Linux. Die Windows Produkte heissen Dektop- oder Personal-Firewalls und dienen eher dazu, Nor-malanwender vor Gefahren aus dem Internet zu schützen.
Eigenständige Rechner, die mit einer Linuxfirewall arbeiten, sind schon eher für professionellen Gebrauch geeignet.

Will man sein Computernetzwerk abschotten, muss man sich überlegen, was genau abgeschottet werden muss und wie sicher es sein soll. Dazu gibt es verschie-dene Firewall Strukturen, die zeigen, wo eine Firewall angebracht werden muss und wie z.B. eine Kombination aus zwei Firewalls aussieht.
Der grösste Schwachpunkt bei Filter-Firewalls ist jedoch die ungenaue Defini-tion der Filterregeln. Ist nur eine Regel fehlerhaft definiert, entsteht schon eine Sicherheitslücke, die möglicherweise ausgenutzt werden könnte.

Ein kurzes Wort zum "unsichtbar" Machen von Rechnern

Viele Leute denken, wenn sie eingehende pinq-requests verwerfen, sei der Rechner quasi "unsichtbar". Dies stimmt so nicht, wie folgendes Beispiel zeigen soll:

    1) dein router ist online und reagiert auf pings:

ich pinge dich an -> ein ICMP-echo-request-paket läuft übers internet -> dein router empfängt es und antwortet mit einem ICMP-echo-reply-paket -> das paket wandert über netz zurück zu mir -> ich weiß dein router ist online und wie lange es dauert pakete zwischen den 2 geräten auszutauschen.

2) dein router ist offline:
ich pinge dich an -> ein ICMP-echo-request-paket läuft übers internet -> der router deines providers bemerkt dass du offline bist und sendet mir ein ICMP-destination-unreachable-paket -> ich weiß dass du offline bist

3) dein router ist online, reagiert aber nicht auf pings
ich pinge dich an -> ein ICMP-echo-request-paket läuft übers internet -> dein router empfängt, aber verwirft es -> ich bekomme gar keine antwort -> ich weiß, dass du online bist, aber pings unterdrückst 😉

Hinweis: Dieses Beispiel stammt von: http://www.pcwelt.de/forum/windows-nt-2000/219687-icmp-ping.html

IT Security

Da das Thema IT Security sehr wichtig ist, hab ich ihm einen eigenen Bereich gewidmet.
<---TOC--->

Was versteht man unter IT Security?

In den letzten Jahrzehnten hat die Nutzung von Computern stetig zugenommen. Begonnen von us-amerikanischen Militäreinrichtungen über Universitäten und öffentlichen Behörden ist heute jedem in den Industrieländern die Welt der Computer offen. Doch damit hat sich auch der Bedarf an Sicherheit erhöht, der v.a. mit der Nutzung des Internets, und damit die weltweite Vernetzung, drastisch gestiegen ist.

Unter IT-Security versteht man nicht nur Hacker-Angriffe und Virenversand sondern allgemein die Forderung alle Massnahmen zur Garantie der Vertraulichkeit (Zugriff und Manipulation nur für Berechtigte), Verfügbarkeit (Sicherung der berechtigten Zugriffsmöglichkeit auf Datenverarbeitungssysteme), Integrität (Garantie von korrekten und vollständigen Daten, vor unberechtigtem Zugriff schützen) und Originalität (Authentizität des Absenders sicherstellen) von Daten.

SSL – Sicherheit im Internet

Einleitung

Secure Sockets Layer (SSL) stellt eine Entwicklung dar, die privacy auf dem Internet sicherstellt. Es erlaubt einer Client-Server Verbindung sicher zu kommunizieren.
Es wurde entwickelt, um
privacy zwischen 2 kommunizierenden Partnern (client-server) sicherzustellen den Server und eventuell den Client zu authentifizieren

Das SSL-Protokoll ist unabhängig von der Applikation, was eine Flexibilität und gute Akzeptanz sicherstellt. Sogenannte higher level -Protokolle (HTTP, FTP, TELNET) können über dem SSL-Protokoll stehen, SSL fungiert dann als Interface zwischen Applikation und Übertragung, das die Daten verschlüsselt. Einerseits erlaubt SSL das Aushandeln eines Verschlüsselungsalgorithmus, andererseits kann das Protokoll einen Server authentifizieren bevor die Daten gesendet oder empfangen werden können. SSL bietet eine sogenannte channel security an, die 3 wesentliche Möglichkeiten haben:
<UL><LI>Der Übertragungskanal ist private: Mittels Handshake wird ein secret key ausgehandelt, der dann für die Übertragung aller Nachrichten verwendet wird.</LI><LI>Der Übertragungskanal ist authentifiztiert: Während der Server immer authentifiziert ist, ist dies beim Client nicht immer der Fall </LI><LI>Der Übertragungskanal ist Verlässlich: Die Übertragung beinhaltet eine Überprüfung</LI></UL>

Handshake

Hier geschieht das Aushandeln der Kommunikation und der Verschlüsselung. Dies geschieht in 2 Phasen

Phase 1

Hier wird die Kommunikation zwischen dem Client und dem Server ausgehandelt. Dies geschieht über das Senden und Empfangen von sogenannten Hello-Nachrichten. Der Client initiert den Verbindungsaufbau mittels Senden von CLIENT-HELLO. Der Server empfängt diese Nachricht und sendet seinerseits ein SERVER-HELLO. Aus dieser Information wissen die Partner nun, ob ein neuer Master Key für die Verschlüsselung gebraucht wird oder ob für die beiden Partner schon einer besteht.
Ist der Master Key schon vorhanden, so kann mit der 2. Phase begonnen werden, andernfalls wird dieser Key vom Server generiert (nur dieser kennt zusammen mit dem Public Key den Master Key) und der Client mittels SERVER-VERIFY davon verständigt.

Phase 2

Hier geschieht die Authentification des Clients (Der Server wurde ja schon in der ersten Phase vom Client authentifiziert).
Möchte der Server etwas von einem Client, so sendet er ein request. Hat der Client die benötigte Information, so sendet er diese an den Server; andernfalls kommt es zu einem Fehler, den an den Server gesendet wird. Für die Authentifikation eines Partners durch einen anderen wird eine spezielle Nachricht (finished) gesendet. Nun muss der sendende Partner seinerseits auf eine finished Nachricht warten, bevor das Handshake Protokoll fertig ist. Die Daten der Applikationen können jetzt übertragen werden.

IPv6

Die ersten Entwicklungen des IPv6 wurden im Jahre 1995 gestartet.

Dieses Protokoll ist der offizielle Nachfolger von IPv4; die Version 5 ist auch vorhanden, wurde aber lediglich für Testzwecke gebraucht. In dieser neuen Version wurde der Header komplett neu überarbeitet und wurde auf 128Bit (vorher 32Bit) gesetzt. IPv4 hat 4 Zahlenfelder (z.B.: 192.168.0.1), IPv6 dagegen hat 5 Zahlenfelder, mit denen man theoretisch 3,4 x 1038 Hosts gleichzeitig versorgen kann, dies hat der Vorteil, dass die Knappheit von IP Adressen-Vergabe keine Rolle mehr spielt. Mit diesem neuen Protokoll ist es möglich, statt nur der BasisHeader zusätzlich noch ErweiterungsHeader zu senden, somit kann man eine optimale Datenübertragung für Programme erzielen; derzeit sind 6 ErweiterungsHeader vorhanden (sind unten aufgelistet). Die Anwendung IPv6 ist OpenSource und lässt es zu, dass es von Zeit zu Zeit weiter-"wächst" und sich immer mehr an die Umgebung anpasst und somit das Internet leistungsfähiger macht.

Der Header von IPv6 sieht folgendermassen aus:

Version	     Priority	              Flow Laber
   Payload Length	       Next Header   Hop Limit
             IP Adresse des Senders
            IP Adresse des Empfängers

Vorteile von IPv6 gegenüber von IPv4

    1.) Die IP Adressen-Vergabe wird kein Problem mehr darstellen.

2.) Die Audio & Video Übertragung wird schneller und besser übertragen.
3.) Man kann Erweiterungs-Header einbinden, und somit Programme optimieren.
4.) Reduzierung des Umfangs der Routing-Tabellen
5.) Höhere Sicherheit (Authentifikation & Datenschutz)
6.) OpenSource

Nachteile von IPv6 gegenüber von IPv4

    1.) Es ist keine Prüfsumme mehr vorhanden. Somit muss, wenn ein Fehler auftritt, das ganze Paket noch einmal gesendet werden.

2.) Die Grösse der Datenpakete ist vorgegeben und ist nicht mehr variabel wie bei IPv4.
3.) Viele Programme & Geräte (z.B.: Router,…) müssen umgebaut bzw. umgeschrieben werden, was eine grosse Wirkung auf die Kosten und Arbeit hat.

Die 6 ErweiterungsHeader mit dem BasisHeader von IPv6:

<B>Header	                         Beschreibung</B>
IPv6 Basis Header.	                 Dieser ist zwingend erforderlich
Optionen für Teilstrecken
(Hop-by-Hop Options Header)              Verschiedene Informationen für Router
Optionen für Ziele
(Destination Options Header              Zusätzliche Infos für das Ziel
Routing(Routing Header)	                 Definition einer vollständigen oder teilweisen Route
Fragmentierung(Fragment Header)	         Verwaltung von Datengrammfragmenten
Authentifikation
(Authentication Header)	                 Echtheitsüberprüfung des Senders
Verschlüsselte Sicherheitsdaten
(Encapsulating Security Payload Header)	 Informationen über des verschlüsselten Inhalt

So funktioniert GPS

Das Global Positioning System (GPS) ist die Grundlage aller modernen Navigationssysteme -sei es im Flugzeug, im Auto, auf hoher See, oder beim Bergwandern. Hier eine Beschreibung, wie GPS eigentlich funktioniert:

{IMG(fileId="37",thumb="y",rel="box[g]",imalign="left",align="left")}{IMG} GPS wurde 1978 vom amerikanischen Verteidigungsministerium (Departement of Defense DoD) ins Leben gerufen. Das System verwendet 24 Satelliten. Sie umkreisen die Erde in Knapp 20’000 Km zur Erdoberfläche im 12 Stunden Rhythmus auf sechs verschiedenen Umlaufbahnen. Jeder Satellit sendet 50 mal pro Sekunde 3 verschiedene Signale, die das GPS Signal bilden:

    1. Signal: Den Pseudo- Zufalls Code, der jeden Satelliten eindeutig identifiziert. Ausserdem erledigt dieser Code die wichtigste Funktion im System: Er sorgt für die Positionsbestimmung. Der GPS Empfänger bestimmt seine Position vom Abstand zum Satelliten.

2. Signal: Das Almanach-Signal: Jeder Empfänger verfügt über einen Almanach, der ihm sagt, wann sich welcher Satellit wo befindet. Mit dem Signal wird diese Datenbank ständig aktuell gehalten.

3. Signal: Ein Zeitkorrektur-Signal, damit GPS-Empfänger ihre Uhren im Bedarfsfall mit den Satelliten-Uhren synchronisieren können, um so den Pseudo-Zufalls-Code exakt abgleichen zu können. Mit nur einem Satellitensignal kann jedoch noch keine Position im Raum bestimmt werden. Für eine halbwegs präzise Bestimmung bedarf es mindestens dreier Signale von verschiedenen Satelliten (Triangulation, siehe Abbildung). Der GPS- Empfänger errechnet aus den unter- schiedlichen Laufzeiten der Signale seine Position. Das DoD möchte verhindern, dass fremde Mächte oder Terroristen uneingeschränkt auf GPS zugreifen können. Deshalb senden die Satelliten zwei Pseudo-Zufalls-Signale auf unterschiedlichen Frequenzen aus. Das zivile Signal wird vom US-Verteidigungsministerium mit einem künstlichen Timing-Fehler versehen, der die Genauigkeit der Positionsbestimmung auf zirka 30 Meter beschränkt. Mit mathematischen Funktionen im Empfänger kann der Fehler bis zu einem gewissen Grad kompensiert werden, so dass sich eine grössere Genauigkeit als 30 Meter erzielen lässt, auch wenn sich die Systeme bewegen. Aber auch andere, nicht künstlich herbeigeführte Faktoren, können die Positionsermittlung behindern:
Störungen in der Atmosphäre, ungünstige Satellitenkonstellationen und vor allem eine Behinderung der Sichtverbindung zum Himmel. Wird GPS zur Routenplanung im Auto eingesetzt, braucht es das passende Kartenmaterial. Die vektorisierten Karten sind auf CD gespeichert und enthalten Positionsmarkierungen, die vom GPS-System mit den Satellitensignalen abgeglichen werden. So lässt sich die Position darstellen und die Route zum Ziel errechnen. Zusätzlich zu den Daten aus dem All wird der Navigationscomputer mit Daten von Sensoren am Fahr- zeug gefüttert, um die Genauigkeit der Position zu erhöhen. Ein Gyroskop (ähnlich einem Träghoheitskompass) und das Tacho-Signal geben Aufschluss über Fahrtrichtung, Geschwindigkeit und die Länge von Kurven. Mit den Daten kann auch ein kurzer Verlust des Satelliten Signals überwunden werden.

In einer Excel Tabelle lesen/schreiben

Mit dem folgenden Code kann man eine Excel Tabelle öffnen und lesen / schreiben.

Hinweis: MS Excel muss dazu auf dem System installiert sein.

'Excel im Hintergrund öffnen, Objekt erstellen und "Tabelle1" öffnen
Set Excel = CreateObject("Excel.Application")
Excel.Visible = False
Excel.Workbooks.Open "C:beispiel.xls"
Set sheet = Excel.Worksheets("Tabelle1")
 
'Alle Daten im aktuellen Druckbereich leeren
'Hinweis: Die Formattierung bleibt dabei erhalten
Excel.ActiveSheet.UsedRange.ClearContents
 
'Schreibe etwas in die erste Zelle in der ersten Zeile
sheet.Cells(1, 1) = "Dieser Text wurde Automatisch geschrieben! ;-)"
'Noch das aktuelle Datum in die 1. Zelle, Zweite Zeile schreiben
sheet.Cells(2, 1) = "Erstellt am: " & Now()
 
'Excel beenden und Objekt löschen
Excel.ActiveWorkbook.Save
Excel.ActiveWorkbook.Close
Excel.Quit
Set Excel = Nothing

Zugriff auf Access Datenbanken

Einleitung:
Da man auch in Visual Basic oft mit Datenbank zugriffen arbeitet, wird hier eine unabhängige, flexible Datenbank-Zugriffs Lösung als die, die in vielen Visual Basic Büchern beschreiben ist gezeigt.
Die Lösung basiert auf "SQL" und ist wird auch in anderen Programmiersprachen verwendet. SQL lässt sich auch ganz gut in Visual Basic einbinden.

Was ist SQL?
SQL = Structured Query Language, wird dazu verwendet um unabhängige Datenbank abfragen auszuführen. Es spielt dabei keine Rolle, was für eine Datenbank (Access, mySQL, DBase) verwendet wird.
Selbstverständlich kann man mit SQL noch viel mehr machen als nur einfache abfragen auszuführen, wen also die Datenbank Anbindung interessiert, wird empfohlen, hierzu weitere Literatur zu beschaffen.

Einfache SQL Anweisungen
Mit sogenannten "SQL Statements" kann man auf eine Datenbank verschiedene Arbeiten durchführen, bsp. Auslesen, Eintragen oder Löschen:

Abfragen mit SELECT
Mittels dem Befehl SELECT können einzelne Felder, Datensätze oder ganze Tabellen abgefragt werden.
Syntax: SELECT TabellenFeld FROM Tabelle [WHERE TabellenFeld = Wert]

Einfügen mittels INSERT
Mittels INSERT können Datensätze eingefügt werden
Syntax: INSERT INTO Tabelle [(Tabellenfeld1, Tabellenfeld2)] VALUES (‚Wert1‘, ‚Wert2‘)

Modifizieren mittels UPDATE
Mittels UPDATE können Datensätze modifiziert werden
Syntax: UPDATE Tabelle WHERE TabellenFeld = ‚Wert‘ SET (TabellenFeld1 = ‚Wert1‘, TabellenFeld2 = ‚Wert2‘)

Welche Schritte sind zu tun, um auf eine SQL Datenbank zuzugreifen?
Um mit SQL auf eine (Access) Datenbank zuzugreifen sind zunächst einige Schritte erforderlich, das nachfolgende Beispiel veranschaulicht dies:

'--Dieser Teil braucht nur einmal gemacht zu werden--
'Variablen deklarieren
Dim Conn As Object      'Objekt für die DB Verbindung
Dim SQLQUERY As Object  'Hier werden die SQL abfragen abgelegt
Dim DBPath As String    'String für den DB-Pfad
Dim SQL As String       'String für die SQL abfragen
 
'Datenbank Pfad bestimmen
DBPath = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=K:daten.mdb"
 
'Datenbank Objekt erstellen
Set Conn = CreateObject("ADODB.Connection")
 
'Die Datenbank öffnen (Conn)
Conn.Open DBPath
 
'--Dieser Teil wird jeweils vor jeder abfrage ausgeführt--
'SQL Befehl festlegen
SQL = "SELECT * FROM tblLogin"
 
'Den SQL Befehl auf die Datenbank ausführen und die Abfrage
'in der "Variablen"* SQLQUERY speichern
Set SQLQUERY = Conn.Execute(SQL)
 
'Solange die Datenbank nicht am ende angelangt ist
'(EOF = EndOfFile) Gib das Feld "UserLoginName" aus
While Not SQLQUERY.EOF
  MsgBox (SQLQUERY("UserLoginName"))
  SQLQUERY.MoveNext
Wend
'Gehe wieder zum ersten Datensatz
SQLQUERY.MoveFirst
 
 
'--Dieser Teil kommt jeweils immer am schluss--
'Datenbank schliessen
Conn.Close
 
 
<ul>
<li> SQLQUERY ist eigentlich ein Objekt, es fällt aber leichter, dies als Variable darzustellen.

Webseite einlesen

Diese Funktion läuft auch mit VBScript, ASP, VBA.

Aufruf (Beispiel):

fetch_page = getURL("<a href="http://www.example.com/")" target="blank">http://www.example.com/")</a>
msgbox fetch_page
Private Function GetURL(URL)
 
  ' --- Konstanten für die Verwendung eines ADODB.Stream-Objektes
  Const adTypeText = 2
  Const adReadAll = -1
 
  ' --- Instantiieren des Objekts MSXML2.ServerXMLHTTP
'  Set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
 
  ' --- für XML 3 !
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  ' --- Instantiieren des
  Set objStream = CreateObject("ADODB.Stream")
  ' --- Einstellen der Timeouts in Millisekunden
  ' --- Es gibt 4 Parameter, die in der nachstehenden Reihenfolge angegeben werden müssen
  ' -----------------------------------------------------
  ' --- resolveTimeout - Auflösen des Hostnamens
  ' --- connectTimeout - Verbinden mit dem Host
  ' --- sendTimeout - Senden eines Datenpaketes an den Server
  ' --- receiveTimeout - Empfangen eines Datenpaketes vom Server
  ' -----------------------------------------------------
  objHTTP.SetTimeouts 5000, 5000, 5000, 5000
 
  ' --- Erstellen des Requests mit folgenden Parametern
  ' --- bstrMethod - Request-Methode
  ' --- bstrURL - Adresse der Seite, die ausgelesen werden soll
  ' --- varAsync - Laden der Seite asynchron (Wenn false, wird synchron geladen)
  objHTTP.open "GET", URL, false
 
  ' --- Senden des Requests
  objHTTP.send
 
  ' --- Datenstrom öffnen und den Typ TEXT festlegen
  objStream.Open
  objStream.Type = adTypeText
 
  ' --- Den Inhalt des ResponseBody in das Stream-Objekt schreiben
  objStream.WriteText(objHttp.ResponseBody)
 
  ' --- An den Anfang des "Stromes" positionieren
  objStream.Position = 0
 
  ' --- Deuschsprachingen Zeichensatz einstellen
  objStream.Charset = "latin1"
 
  ' --- Der gesamte Text der geladenen Seite wird jetzt in das Stream-Objekt
  ' --- eingelesen und als Rückgabewert der Funktion GetURL zugewiesen.
  ' --- Und abschließend muss das Objekt wieder geschlossen werden.
  GetURL = objStream.ReadText(adReadAll)
  objStream.close
 
  ' --- Terminieren der Objekte
  Set objStream = Nothing
  Set objHTTP = Nothing
End Function