{"id":55000220,"date":"2004-06-01T00:00:00","date_gmt":"2020-05-06T15:17:45","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=220"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"IPAdressverwaltung_mit_IPScanner","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/","title":{"rendered":"IP-Adressverwaltung mit IP-Scanner"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Christoph Spielmann, D&uuml;sseldorf<\/b><\/p>\n<p><b>In modernen Netzwerken wird heutzutage fast ausschlie&szlig;lich das TCP\/IP-Protokoll zur &uuml;bertragung von Daten eingesetzt. Eine Besonderheit dieses Protokolls ist, dass jedes Endger&auml;t durch eine eindeutige IP-Adresse gekennzeichnet ist. Die im vorliegenden Beitrag vorgestellte L&ouml;sung hilft Ihnen bei der Verwaltung der IP-Adressen Ihres Netzwerks. Au&szlig;erdem erfahren Sie hier Grundlegendes zum Thema TCP\/IP und lernen, IP-Adressen per VBA auszulesen.<\/b><\/p>\n<p>Die &uuml;bertragung von Daten innerhalb eines Netzwerks wird als Schichtmodell abgebildet, das in der Theorie aus mehreren einzelnen Schichten besteht. Eine Schicht basiert jeweils auf den Diensten der darunter liegenden Schicht und f&uuml;gt dieser weitere Funktionen hinzu.<\/p>\n<p>Die unterste Schicht ist in der Regel das physikalische Protokoll, mit dem einzelne Datenbits durch Stromimpulse &#8211; oder beim W-LAN &uuml;ber elektromagnetische Wellen &#8211; &uuml;bertragen werden. Beim weit verbreiteten Ethernet kommt zum Beispiel das CSMA\/CD-Verfahren zum Einsatz (&#8222;Carrier Sense Multiple Access\/Collision Detection&#8220;). Dieses Verfahren regelt zum Beispiel, wie Kollisionen vermieden werden, wenn mehrere PCs gleichzeitig &uuml;ber ein einzelnes Kabel senden m&ouml;chten.<\/p>\n<p>Aus diesem Verfahren stammt auch die bekannte MAC-Adresse, mit der jede Netzwerkkarte ausgestattet ist. Mit ihrer Hilfe kann ein Sender einen Empf&auml;nger eindeutig adressieren. Die MAC-Adressen werden hierbei bei der Produktion einer Ethernet-Karte zentral vergeben. So ist sichergestellt, dass jede weltweit produzierte Karte eine eindeutige Adresse besitzt.<\/p>\n<p>Auf dem CSMA\/CD-Protokoll k&ouml;nnen nun weitere unterschiedliche Protokolle aufsetzen. Dazu z&auml;hlen beispielsweise das von Microsoft und IBM entwickelte NetBIOS-Protokoll, das IPX\/SPX-Protokoll von Novell, aber auch das inzwischen mehr als 30 Jahre alte TCP\/IP-Protokoll.<\/p>\n<p>IP steht als Abk&uuml;rzung f&uuml;r &#8222;Internet Protocol&#8220; und TCP als Abk&uuml;rzung f&uuml;r &#8222;Transmission Control Protocol&#8220;. Das IP-Protokoll hat die Aufgabe, einzelne Datenpakete vom Sender zum Empf&auml;nger zu senden. Die Pakete sind hierbei sehr klein und umfassen in der Regel nur wenige KByte an Daten. Wenn gr&ouml;&szlig;ere Datenmengen aus einer Datei &uuml;bertragen werden sollen, m&uuml;ssen mehrere IP-Pakete nacheinander versendet werden.<\/p>\n<p>Insbesondere bei der &uuml;bertragung von Daten &uuml;ber das Internet kann es vorkommen, dass einzelne Pakete unterschiedliche Wege nehmen und sich so die Reihenfolge der Pakete beim Empf&auml;nger &auml;ndert. Das TCP-Protokoll sorgt nun daf&uuml;r, dass diese wieder in der richtigen Reihenfolge zusammengesetzt werden. Sollten hierbei Pakete verloren gehen oder besch&auml;digt werden, fordert das TCP-Protokoll diese neu beim Sender an, sodass eine &uuml;bertragene Datei wieder hergestellt werden kann.<\/p>\n<p>Insbesondere bei Live-Multimedia-&uuml;bertragungen kommt an Stelle des TCP-Protokolls ein weiteres Protokoll namens UDP zum Einsatz. Die Besonderheit ist hier zum Beispiel, dass fehlende Pakete nicht neu angefordert werden. Wenn beispielsweise eines von 24 Bildern pro Sekunde einen Fehler aufweist, macht es keinen Sinn, dieses Bild einige Sekunden sp&auml;ter noch einmal in einer korrekten Form zu empfangen. Statt dessen wird das defekte Bild einfach ausgelassen, was dem Betrachter kaum auff&auml;llt.<\/p>\n<p>Grundlage f&uuml;r das Funktionieren des IP-Protokolls ist, dass Sender und Empf&auml;nger eine eindeutige Adresse besitzen. Dies ist die IP-Adresse. Eine IP-Adresse ist nichts anderes als eine ganzzahlige Nummer, die innerhalb eines Netzwerkes eindeutig sein muss.<\/p>\n<p>Da diese Nummer einen gro&szlig;en Wertebereich hat und damit schwer zu merken ist, werden IP-Adressen in der Regel in vier Teilen angegeben, die jeweils durch einen Punkt getrennt sind, wie zum Beispiel 192.168.1.7.<\/p>\n<p>Die einzelnen Teile der IP-Adresse d&uuml;rfen einen Wertebereich von 0 bis 255 aufweisen, sodass 0.0.0.0 die kleinste und 255.255.255.255 die gr&ouml;&szlig;te IP-Adresse ist.<\/p>\n<p>Wenn man bedenkt, dass in Zukunft vom Fernseher &uuml;ber das Handy bis zum Auto jedes elektrische Ger&auml;t eine IP-Adresse haben soll, wird deutlich, dass der Adressbereich bald aufgebraucht sein wird. Hier wird das neue IP-Protokoll in der Version 6 Abhilfe schaffen, das einen wesentlich gr&ouml;&szlig;eren Adressbereich anbietet. Jeder Quadratmeter der Erdoberfl&auml;che kann hier mit mehr als 1000 IP-Adressen ausgestattet werden, was f&uuml;r einige Zeit ausreichen d&uuml;rfte.<\/p>\n<p>Jeder IP-Adresse ist &uuml;blicherweise ein Name zugewiesen, der sich einfacher merken l&auml;sst. Diese Zuweisung wird von einem so genannten &#8222;Domain Name Server&#8220; verwaltet. Dieser kann zu jedem Namen eine IP-Adresse zur&uuml;ckgeben (DNS-Lookup). Der umgekehrte Weg ist ebenfalls m&ouml;glich (Reverse DNS-Lookup). Schlie&szlig;lich ist es einfacher, &uuml;ber den Link http:\/\/www.microsoft.de auf die Web-Seite von Microsoft zu gelangen, als den Link http:\/\/212.184.80.190 zu verwenden.<\/p>\n<p>Die in dieser Musterl&ouml;sung vorgestellte Verwaltung von IP-Adressen basiert auf einer einzelnen Tabelle namens tblIPAdressen. Die Tabelle hat den folgenden Aufbau:<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feldname<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>IPAdresse<\/p>\n<\/td>\n<td>\n<p>Zahl des Typs Long Integer<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>IPString<\/p>\n<\/td>\n<td>\n<p>IP-Adresse als Zeichenkette<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Name<\/p>\n<\/td>\n<td>\n<p>DNS-Name<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Beschreibung<\/p>\n<\/td>\n<td>\n<p>Beschreibung zur Adresse<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>AngelegtAm<\/p>\n<\/td>\n<td>\n<p>Anlage des Datensatzes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>LetztePr&uuml;fungAm<\/p>\n<\/td>\n<td>\n<p>Letzte Pr&uuml;fung des Datensatzes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>IstErreichbar<\/p>\n<\/td>\n<td>\n<p>Ja\/Nein-Feld, das die Erreichbarkeit des Endger&auml;ts angibt<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 1: Die Felder der Tabelle tblIPAdressen<\/b><\/p>\n<p>Das Feld IPAdresse ist der Prim&auml;rschl&uuml;ssel der Tabelle. Hier werden die IP-Adressen als Zahl abgelegt. Das Feld IPString dient der besseren Lesbarkeit der Adresse, da diese hier in der gewohnten Art und Weise mit dem Punkt als Trennzeichen angegeben ist. Das Feld Name nimmt den DNS-Namen des Ger&auml;ts auf, sofern dieser verf&uuml;gbar ist. Bei Bedarf kann das Ger&auml;t mit einer benutzerdefinierten Beschreibung kommentiert werden.<\/p>\n<p>Die beiden folgenden Datumsfelder nehmen das Anlagedatum des Datensatzes sowie das Datum der letzten Pr&uuml;fung durch den IP-Scanner auf. Das letzte Ja\/Nein-Feld gibt schlie&szlig;lich an, ob das Ger&auml;t erreichbar war.<\/p>\n<p>Dies ist beispielsweise dann erforderlich, wenn der DNS zwar zu einer IP-Adresse einen Namen liefert, das Ger&auml;t jedoch momentan ausgeschaltet ist.<\/p>\n<pre>Public Property Get Adresse() As Long\r\n    Adresse = m_Adresse\r\nEnd Property\r\nPublic Property Let Adresse(Value As Long)\r\n    m_Adresse = Value\r\n    m_BatFilename = \"C:\\ping\" + CStr(m_Adresse) + \".bat\"\r\n    m_ResultFilename = \"C:\\pingresult\" + CStr(m_Adresse) + \".txt\"\r\nEnd Property<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Public Sub Scan(DoDBUpdate As Boolean, Async As Boolean)\r\n    Dim IPString As String\r\n    IPString = modIPTools.IPLongToString(m_Adresse)\r\n    If Dir(m_ResultFilename) &lt;&gt; \"\" Then Kill m_ResultFilename\r\n    If Dir(m_BatFilename) &lt;&gt; \"\" Then Kill m_BatFilename\r\n    Dim ExitCode As Long\r\n    Dim FreeFileID As Integer\r\n    Dim ReadLine As String\r\n    Dim Command As String\r\n    Command = \"ping.exe -a -n 3 \" + IPString + \" &gt;\" + m_ResultFilename\r\n    FreeFileID = FreeFile\r\n    Open m_BatFilename For Output As #FreeFileID\r\n        Print #FreeFileID, Command\r\n    Close #1\r\n    m_InstanceID = Shell(m_BatFilename, vbHide)\r\n    m_ProcessID = OpenProcess(PROCESS_QUERY_INFORMATION, False, m_InstanceID)\r\n    If Async = False Then\r\n        Do\r\n            Call GetExitCodeProcess(m_ProcessID, ExitCode)\r\n            DoEvents\r\n        Loop While ExitCode = STATUS_PENDING\r\n        If Dir(m_ResultFilename) &lt;&gt; \"\" Then\r\n            FreeFileID = FreeFile\r\n            Open m_ResultFilename For Input As #FreeFileID\r\n                Do While Not EOF(FreeFileID)\r\n                     Line Input #FreeFileID, ReadLine\r\n                     m_ResultText = m_ResultText + ReadLine + vbCrLf\r\n                Loop\r\n            Close #1\r\n            If Dir(m_ResultFilename) &lt;&gt; \"\" Then Kill m_ResultFilename\r\n            If Dir(m_BatFilename) &lt;&gt; \"\" Then Kill m_BatFilename\r\n            If DoDBUpdate Then\r\n                UpdateDatabase\r\n            End If\r\n        End If\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>Das F&uuml;llen der vorgestellten Tabelle soll m&ouml;glichst automatisch erfolgen. Idealerweise soll die Tabelle nach Abschluss des Scan-Vorgangs eine &uuml;bersicht &uuml;ber alle im lokalen Netzwerk angeschlossenen Ger&auml;te liefern.<\/p>\n<p>Um Informationen &uuml;ber die Erreichbarkeit eines Netzwerkger&auml;ts zu erhalten, eignet sich der DOS-Befehl &#8222;Ping&#8220;. Dieser sendet &uuml;ber ein spezielles IP-Protokoll namens ICMP (Internet Control Message Protocol) eine Anfrage an ein Ger&auml;t mit der Bitte, diese zu beantworten.<\/p>\n<p>Da es sich um einen DOS-Befehl handelt, kann dieser von Access aus prinzipiell mit Hilfe der Shell-Funktion ausgef&uuml;hrt werden. Der Nachteil ist jedoch, dass das Ergebnis der Funktion nicht abgefragt werden kann. Der IP-Scanner bedient sich daher einiger Tricks, um an das Ergebnis zu gelangen. <\/p>\n<p>Den kompletten Quellcode des Scanners finden Sie in dem Klassenmodul clsScanner der Beispieldatenbank zu dieser Musterl&ouml;sung.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die im vorliegenden Beitrag vorgestellte Musterl&ouml;sung finden Sie auf der Heft-CD unter dem Dateinamen IPDatabase.mdb (nur f&uuml;r Access 2000 und h&ouml;her). <\/p>\n<p>Damit die Klasse wei&szlig;, welche IP-Adresse sie untersuchen soll, besitzt sie eine private Variable namens m_Adresse:<\/p>\n<pre>Private m_Adresse As Long<\/pre>\n<p>Um die Variable von au&szlig;en zug&auml;nglich zu machen, stellt die Klasse zwei entsprechende Property-Prozedure zum lesenden und schreibenden Zugriff zur Verf&uuml;gung (s. Quellcode 1).<\/p>\n<p><!--30percent--><\/p>\n<p>Beim schreibenden Zugriff werden unter anderem die beiden Variablen m_ResultFilename und m_BatFilename initialisiert. Die Bedeutung lernen Sie sp&auml;ter noch kennen. Die Kernfunktion der Klasse tr&auml;gt den Namen Scan (s. Quellcode 2).<\/p>\n<p>Zun&auml;chst wird die in der Variablen m_Adresse gespeicherte IP-Adresse in eine Zeichenkette umgewandelt, sodass diese sp&auml;ter mit dem DOS-Befehl Ping eingesetzt werden kann. Als weitere Vorbereitung werden die beiden tempor&auml;ren Dateien gel&ouml;scht, falls diese bereits vorhanden sind.<\/p>\n<p>Als N&auml;chstes wird die komplette Anweisung zur Ausf&uuml;hrung der Ping-Anweisung erstellt und das Ergebnis in der Variablen Command abgelegt. <\/p>\n<p>Der komplette Befehl besteht hierbei aus dem Teil ping.exe, einigen Parametern, die die H&auml;ufigkeit der Ping-Versuche steuern und die Ausgabe des DNS-namens bewirken, sowie einer Umleitung des Ergebnisses mittels &#8222;&gt;&#8220;-Operator in den in der Variablen m_ResultFilename angegebenen Dateinamen. Damit mehrere Scanner gleichzeitig arbeiten k&ouml;nnen, enth&auml;lt der Dateiname zus&auml;tzlich auch die IP-Adresse.<\/p>\n<p>Der fertige Befehl kann nun leider nicht direkt mit der Shell-Anweisung ausgef&uuml;hrt werden, da hierbei aus unerkl&auml;rlichen Gr&uuml;nden das Ergebnis nicht in die Datei m_ResultFilename geschrieben wird. Als Workaround wird daher zun&auml;chst unter dem in der Variablen m_BatFilename abgelegten Namen eine Batch-Datei angelegt, mit dem Befehl gef&uuml;llt, gespeichert und schlie&szlig;lich ausgef&uuml;hrt.<\/p>\n<h2>Abrufen des Ping-Ergebnisses<\/h2>\n<p>Nach dem Start der Batch-Datei mittels Shell-Funktion setzt Access die Ausf&uuml;hrung des Programms fort, obwohl die Ping-Anweisung noch nicht beendet und damit das Ergebnis noch nicht vorhanden ist. Diese Art der Ausf&uuml;hrung wird auch als asynchrone Ausf&uuml;hrung bezeichnet.<\/p>\n<p>Der nachfolgende Anweisungsblock ermittelt daher die interne Prozess-ID der Batch-Datei mit Hilfe von API-Funktionen. Mittels einer Do Loop-Schleife wird nachher regelm&auml;&szlig;ig gepr&uuml;ft, ob die Ping-Anweisung ihre Arbeit abgeschlossen hat.<\/p>\n<p>Damit diese Endlosschleife nicht zu viel Rechenleistung ben&ouml;tigt, wird innerhalb der Schleife neben der Abfrage des aktuellen Prozessstatus auch die Anweisung DoEvents ausgef&uuml;hrt, die allen anderen Windows-Anweisungen, darunter auch der Ping-Anweisung, gen&uuml;gend Rechenleistung zur Erledigung ihrer Aufgaben gibt.<\/p>\n<pre>Public Property Get Name() As String\r\n    Dim IPString As String\r\n    Dim pos As Integer\r\n    Dim pos2 As Integer\r\n    IPString = modIPTools.IPLongToString(m_Adresse)\r\n    pos = InStr(m_ResultText, \"[\" + IPString + \"]\")\r\n    If pos &gt; 0 Then\r\n        pos2 = InStrRev(m_ResultText, \" \", pos - 2)\r\n        If pos2 &gt; 0 Then\r\n            Name = Trim(Mid(m_ResultText, pos2, pos - _                pos2 - 1))\r\n        End If\r\n    End If\r\nEnd Property\r\nPublic Property Get IstErreichbar() As Boolean\r\n    Dim pos As Integer\r\n    pos = InStr(m_ResultText, \"Empfangen = 0\")\r\n    If pos = 0 Then\r\n        IstErreichbar = True\r\n    Else\r\n        IstErreichbar = False\r\n    End If\r\nEnd Property<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Sobald der Ping-Befehl beendet ist, liest der nachfolgende Programmblock das Ergebnis aus der Datei in die Variable m_ResultText ein, die im Deklarationsbereich des Klassenmoduls definiert ist:<\/p>\n<pre>Private m_ResultText As String<\/pre>\n<p>Bei dem Ergebnis handelt es sich um einen kompletten Textblock mit folgendem Aufbau:<\/p>\n<pre>Ping wird ausgef&uuml;hrt f&uuml;r SRVFIREWALL [192.168.2.2] mit 32 Bytes Daten:\r\nAntwort von 192.168.2.2: Bytes=32 Zeit&lt;1ms TTL=128\r\nAntwort von 192.168.2.2: Bytes=32 Zeit&lt;1ms TTL=128\r\nAntwort von 192.168.2.2: Bytes=32 Zeit&lt;1ms TTL=128\r\nPing-Statistik f&uuml;r 192.168.2.2:\r\n    Pakete: Gesendet = 3, Empfangen = 3, Verloren = 0 (0% Verlust),\r\nCa. Zeitangaben in Millisek.:\r\n    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms<\/pre>\n<p>Hieraus m&uuml;ssen die gesuchten Angaben noch extrahiert werden. Zu diesem Zweck besitzt das Klassenmodul die folgenden beiden Property-Prozeduren aus Quellcode 3.<\/p>\n<p>Die erste Property-Prozedur Name sucht die Position der IP-Adresse und ermittelt anschlie&szlig;end das davor stehende Wort. Hierbei handelt es sich um den Namen des Netzwerkger&auml;ts.<\/p>\n<p>Die zweite Property-Prozedur IstErreichbar sucht nach dem Text &#8222;Empfangen = 0&#8220;. Sollte dieser vorhanden sein, wurden keine Antwort-IP-Pakete empfangen und das Ger&auml;t ist damit nicht erreichbar.<\/p>\n<h2>Datenbank-Update<\/h2>\n<p>Nachdem der Ping-Befehl ein Ergebnis geliefert hat, wird dies noch in die Datenbank eingetragen. Das erledigt die Methode UpdateDatabase (s. Quellcode 4). Diese Prozedur ruft zun&auml;chst aus der Tabelle tblIPAdressen den Datensatz mit der momentan untersuchten Adresse ab. Sollte dieser vorhanden sein, wird er mit den Daten des Scan-Vorgangs aktualisiert. Sollte er nicht vorhanden sein, wird er neu angelegt. &uuml;ber den Parameter DoDBUpdate der Scan-Methode kann gesteuert werden, ob die Klasse diese Datenbank-Updates automatisch nach jedem Scan-Vorgang vornehmen soll.<\/p>\n<pre>Public Sub UpdateDatabase()\r\n    Dim MyData As New ADODB.Recordset\r\n    With MyData\r\n        .ActiveConnection = CurrentProject.Connection\r\n        .CursorLocation = adUseClient\r\n        .CursorType = adOpenDynamic\r\n        .LockType = adLockOptimistic\r\n        .Source = \"SELECT * FROM tblIPAdressen WHERE IPAdresse=\" + CStr(m_Adresse)\r\n        .Open\r\n        If .RecordCount = 0 Then\r\n            .AddNew\r\n            !IPAdresse = m_Adresse\r\n            !IPString = modIPTools.IPLongToString(m_Adresse)\r\n            !AngelegtAm = Now\r\n        End If\r\n        !LetztePr&uuml;fungAm = Now\r\n        !IstErreichbar = Me.IstErreichbar\r\n        !Name = Me.Name\r\n        .Update\r\n    End With\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<pre>Public Function IsScanInProgress() As Boolean\r\n    If m_ProcessID = 0 Then\r\n        IsScanInProgress = False: Exit Function\r\n    End If\r\n    Dim ExitCode As Long\r\n    Call GetExitCodeProcess(m_ProcessID, ExitCode)\r\n    If ExitCode = STATUS_PENDING Then\r\n        IsScanInProgress = True\r\n    Else\r\n        Dim FreeFileID As Integer, ReadLine As String\r\n        If Dir(m_ResultFilename) &lt;&gt; \"\" Then\r\n            FreeFileID = FreeFile\r\n            Open m_ResultFilename For Input As #FreeFileID\r\n                Do While Not EOF(FreeFileID)\r\n                     Line Input #FreeFileID, ReadLine\r\n                     m_ResultText = m_ResultText + ReadLine + vbCrLf\r\n                Loop\r\n            Close #1\r\n            If Dir(m_ResultFilename) &lt;&gt; \"\" Then Kill m_ResultFilename\r\n            If Dir(m_BatFilename) &lt;&gt; \"\" Then Kill m_BatFilename\r\n            UpdateDatabase\r\n        End If\r\n        IsScanInProgress = False\r\n    End If\r\nEnd Function<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<pre>Public Sub ScanRange()\r\n    Const MAXSCANNER = 10\r\n    Dim Scanner(MAXSCANNER) As clsScanner\r\n    Dim ScannerIndex As Integer\r\n    Dim IsOneScannerAlive As Boolean\r\n    Do\r\n        IsOneScannerAlive = False\r\n        For ScannerIndex = 0 To MAXSCANNER - 1\r\n            If Scanner(ScannerIndex) Is Nothing Then\r\n                Set Scanner(ScannerIndex) = New clsScanner\r\n            End If\r\n            If Scanner(ScannerIndex).IsScanInProgress = True Then\r\n                IsOneScannerAlive = True\r\n            ElseIf Scanner(ScannerIndex).IsScanInProgress = False Then\r\n                Set Scanner(ScannerIndex) = New clsScanner\r\n                If m_AktuelleAdresse = 0 Then\r\n                    m_AktuelleAdresse = m_RangeStart\r\n                    Scanner(ScannerIndex).Adresse = m_AktuelleAdresse\r\n                    Scanner(ScannerIndex).Scan True, True\r\n                Else\r\n                    If m_AktuelleAdresse &lt; m_RangeEnd Then\r\n                        m_AktuelleAdresse = m_AktuelleAdresse + 1\r\n                        Scanner(ScannerIndex).Adresse = m_AktuelleAdresse\r\n                        Scanner(ScannerIndex).Scan True, True\r\n                    End If\r\n                End If\r\n                RaiseEvent StatusChange(\"Scanne \" + _                    modIPTools.IPLongToString(m_AktuelleAdresse))\r\n            End If\r\n            DoEvents\r\n        Next\r\n    Loop Until (m_AktuelleAdresse = m_RangeEnd) And IsOneScannerAlive = False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<p>In der Praxis besteht die Anforderung, nicht nur eine einzelne IP-Adresse, sondern einen kompletten Bereich zu pr&uuml;fen. Diese Aufgabe &uuml;bernimmt die Klasse clsRangeScanner. Diese Klasse besitzt eine Start-Adresse sowie eine End-Adresse. Alle zwischen diesen Grenzen liegenden IP-Adressen werden von ihr untersucht.<\/p>\n<p>Da jeder einzelne Ping-Vorgang erhebliche Zeit in Anspruch nimmt (ca. 15 Sekunden), w&uuml;rde das Untersuchen eines kompletten Bereichs wie zum Beispiel 192.168.1.0 bis 192.168.1.255 viel Zeit in Anspruch nehmen. Zu diesem Zweck startet die Klasse mehrere IP-Scanner gleichzeitig, sodass die ben&ouml;tigte Zeit deutlich reduziert werden kann.<\/p>\n<p>Zur Behebung dieses Nachteils stellt die bereits zuvor vorgestellte Klasse bei der Scan-Methode den Parameter Async zur Verf&uuml;gung. Wenn hier True &uuml;bergeben wird, wartet die Prozedur nicht auf das Ende des Scan-Vorgangs. Auch der Datenbank-Update-Vorgang wird nicht durchgef&uuml;hrt.<\/p>\n<pre>Public Function IPPartsToLong(P1 As Byte, P2 As Byte, _    P3 As Byte, P4 As Byte) As Long\r\n    Dim P1Hex As String\r\n    Dim P2Hex As String\r\n    Dim P3Hex As String\r\n    Dim P4Hex As String\r\n    ''Teile in Hexadezimalzahlen umwandeln\r\n    P1Hex = Hex(P1)\r\n    P2Hex = Hex(P2)\r\n    P3Hex = Hex(P3)\r\n    P4Hex = Hex(P4)\r\n    ''Immer auf 2 Stellen auff&uuml;llen\r\n    If Len(P1Hex) = 1 Then P1Hex = \"0\" + P1Hex\r\n    If Len(P2Hex) = 1 Then P2Hex = \"0\" + P2Hex\r\n    If Len(P3Hex) = 1 Then P3Hex = \"0\" + P3Hex\r\n    If Len(P4Hex) = 1 Then P4Hex = \"0\" + P4Hex\r\n    IPPartsToLong = Val(\"&h\" & P1Hex & P2Hex & P3Hex _        & P4Hex)\r\nEnd Function<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<pre>Public Function IPLongToParts(IPLong As Long, _    ByRef P1 As Byte, ByRef P2 As Byte, _    ByRef P3 As Byte, ByRef P4 As Byte)\r\n    Dim IPHex As String\r\n    Dim P1Hex As String\r\n    Dim P2Hex As String\r\n    Dim P3Hex As String\r\n    Dim P4Hex As String\r\n    ''In Hexadezimalzahl umwandeln\r\n    IPHex = Hex(IPLong)\r\n    ''Immer mit f&uuml;hrenden Nullen auf 8 Stellen auff&uuml;llen\r\n    Do While Len(IPHex) &lt; 8\r\n        IPHex = \"0\" + IPHex\r\n    Loop\r\n    ''Zerlegen in einzelne Teile\r\n    P1Hex = Mid(IPHex, 1, 2)\r\n    P2Hex = Mid(IPHex, 3, 2)\r\n    P3Hex = Mid(IPHex, 5, 2)\r\n    P4Hex = Mid(IPHex, 7, 2)\r\n    ''In Dezimalzahl umwandeln\r\n    P1 = Val(\"&h\" & P1Hex)\r\n    P2 = Val(\"&h\" & P2Hex)\r\n    P3 = Val(\"&h\" & P3Hex)\r\n    P4 = Val(\"&h\" & P4Hex)\r\nEnd Function<\/pre>\n<p><b>Quellcode 8<\/b><\/p>\n<p>Diese Aufgaben sind in die Methode IsScanInProgress ausgelagert (s. Quellcode 5).<\/p>\n<p>Die Prozedur pr&uuml;ft, ob der Scan-Vorgang noch l&auml;uft. Sollte dies nicht der Fall sein, wird die Ergebnisdatei eingelesen und das Ergebnis in die Datenbank geschrieben.<\/p>\n<h2>Ablauf des Scan-Vorgangs<\/h2>\n<p>Die Hauptprozedur der Klasse clsRangeScanner tr&auml;gt den Namen ScanRange. Die Prozedur ist wie in Quellcode 6 aufgebaut.<\/p>\n<p>Die Konstante MAXSCANNER gibt an, wie viele Scanner gleichzeitig arbeiten sollen. Um das Betriebssystem nicht zu &uuml;berlasten, sollte die Anzahl von zehn gleichzeitigen Scannern nicht &uuml;berschritten werden, da ansonsten falsche Ergebnisse zur&uuml;ckgeliefert werden. Anschlie&szlig;end wird ein Array definiert, das entsprechend viele Objekte des Typs clsScanner aufnehmen kann.<\/p>\n<p>Die nachfolgende Do&#8230;Loop-Schleife wird so lange durchlaufen, bis alle Adressen abgescannt sind und momentan kein Scanner mehr aktiv ist.<\/p>\n<p>Innerhalb der Schleife wird f&uuml;r jeden Scanner regelm&auml;&szlig;ig die  Methode IsScanInProgress aufgerufen, sodass jeder einzelne Scanner das Ergebnis pr&uuml;fen und gegebenenfalls in die Datenbank schreiben kann.<\/p>\n<p>Danach wird dem Scanner eine neue IP-Adresse zugewiesen.<\/p>\n<pre>Private Sub btnStartScan_Click()\r\n    Me.txtStartAdresse.SetFocus\r\n    Me.btnCancel.Enabled = False\r\n    Me.btnStartScan.Enabled = False\r\n    Dim StartAdresse As Long\r\n    Dim EndAdresse As Long\r\n    On Error Resume Next\r\n    StartAdresse = modIPTools.IPStringToLong(Me.txtStartAdresse.Value)\r\n    EndAdresse = modIPTools.IPStringToLong(Me.txtEndAdresse.Value)\r\n    If Err.Number &lt;&gt; 0 Then\r\n        MsgBox \"Bitte pr&uuml;fen Sie Ihre Eingabe: \" + Err.Description, vbCritical\r\n    Else\r\n        If StartAdresse &lt; EndAdresse Then\r\n            ScanBereich StartAdresse, EndAdresse\r\n        Else\r\n            ScanBereich EndAdresse, StartAdresse\r\n        End If\r\n    End If\r\n    Me.btnCancel.Enabled = True\r\n    Me.btnStartScan.Enabled = True\r\nEnd Sub<\/pre>\n<p><b>Quellcode 9<\/b><\/p>\n<p>Innerhalb der Schleife wird zus&auml;tzlich ein StatusChange-Ereignis ausgel&ouml;st, so dass der Nutzer der Klasse &uuml;ber den aktuellen Stand informiert werden kann.<\/p>\n<p>In den beiden vorgestellten Klassen erfolgen h&auml;ufig Umrechnungen zwischen dem Text und dem Zahlen-Format von IP-Adressen. Die Umwandlung einer IP-Adresse von einer Zeichenkette in einen aus 4 mal 8 Bit bestehenden Long-Wert &uuml;bernimmt die Prozedur IPPartsToLong des Moduls modIPTools (s. Quellcode 7).<\/p>\n<p>Hierbei wendet die Prozedur den folgenden Trick an: Die IP-Adresse 255.255.255.255 l&auml;sst sich im Hexadezimalformat auch als FF.FF.FF.FF darstellen. Werden hier nun noch die Punkte entfernt, kann Access diese Zeichenkette mit Hilfe der Val-Funktion in eine Zahl umwandeln. <\/p>\n<p>Hierzu muss lediglich noch der Text &#8222;&#038;h&#8220; vorangestellt werden, damit die Funktion dar&uuml;ber informiert wird, dass es sich um eine Hexadezimalzahl handelt. Weiterhin ist es eventuell noch erforderlich, f&uuml;hrende Nullen hinzuzuf&uuml;gen, damit ein IP-Teil immer zwei Stellen belegt (zum Beispiel 01.01.01.01). Die umgekehrte Umrechnung erledigt die Prozedur IPLongToParts (s. Quellcode 8). <\/p>\n<p>Diese Funktion wandelt die Adresse mit Hilfe der Hex-Funktion in eine Hexadezimalzahl um, f&uuml;llt f&uuml;hrende Nullen auf, zerlegt die Zeichenkette in vier Teile und ermittelt schlie&szlig;lich die Dezimalwerte der einzelnen Teile mit Hilfe der Val-Funktion.<\/p>\n<p>Zwei weitere Funktionen namens IPLongToString und IPStringToLong haben die gleiche Aufgabe, arbeiten aber an Stelle der IP-Adressteile mit Zeichenketten. Den Quellcode finden Sie in der Beispieldatenbank.<\/p>\n<pre>Private Sub ScanBereich(StartAdresse As Long, EndAdresse As Long)\r\n    Dim AktuelleAdresse As Long\r\n    Set m_RangeScanner = New clsRangeScanner\r\n    With m_RangeScanner\r\n        .RangeStart = StartAdresse\r\n        .RangeEnd = EndAdresse\r\n        .ScanRange\r\n    End With\r\n    DoCmd.Close acForm, Me.Name\r\nEnd Sub<\/pre>\n<p><b>Quellcode 10<\/b><\/p>\n<pre>Private WithEvents m_RangeScanner As clsRangeScanner\r\nPrivate Sub m_RangeScanner_StatusChange(StatusText As String)\r\n    Me.lblStatus.Caption = StatusText\r\nEnd Sub<\/pre>\n<p><b>Quellcode 11<\/b><\/p>\n<p>Zum komfortablen Einsatz der Klasse clsRangeScanner steht das Formular frmIPScanner zur Verf&uuml;gung.<\/p>\n<p><IMG height=\"167\" src=\"..\/fileadmin\/_temp_\/{F3D99258-8F3A-4572-90A3-CDB8829F05F4}\/pic001.png\" width=\"289\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Das Formular des IP-Scanners<\/span><\/b><\/p>\n<p>Das Formular enth&auml;lt zwei Textfelder, in die der Benutzer die Start- und Endadresse eingeben kann. Die Start-Schaltfl&auml;che ist mit der Ereignisprozedur aus Quellcode 9 verkn&uuml;pft.<\/p>\n<p>Zuerst werden alle Schaltfl&auml;chen deaktiviert, damit der Benutzer den Scan-Vorgang nicht doppelt starten oder unkontrolliert abbrechen kann.<\/p>\n<p>Danach erfolgt eine Umwandlung der eingegebenen IP-Adressen in eine IP-Zahl. Sollte hierbei ein Fehler auftreten, zum Beispiel wenn ein Teil der IP-Adresse gr&ouml;&szlig;er als 255 ist, wird dieser in Form einer Meldung angezeigt.<\/p>\n<p>Abschlie&szlig;end wird die Funktion ScanBereich aufgerufen und hierbei darauf geachtet, dass die kleinere IP-Adresse immer als erstes Argument angegeben ist (s. Quellcode 10).<\/p>\n<p>Die Funktion startet den Scan-Vorgang, indem Sie ein Objekt der Klasse clsRangeScanner erzeugt, dieses initialisiert und die ScanRange-Methode aufruft (s. Quellcode 11).<\/p>\n<p>Nach Abschluss des Vorgangs schlie&szlig;t die Prozedur das Formular.<\/p>\n<p>Damit das Formular den Status des aktuellen Scan-Vorgangs anzeigen kann, ist die Variable m_RangeScanner im Deklarationsbereich mit dem Schl&uuml;sselwort WithEvents deklariert (s. Quellcode 11).<\/p>\n<p>Die Ereignisse des Objekts werden mit Hilfe der folgenden Ereignisprozedur abgefangen und in das Status-Bezeichnungsfeld lblStatus geschrieben (s. Quellcode 9).<\/p>\n<p><IMG height=\"285\" src=\"..\/fileadmin\/_temp_\/{F3D99258-8F3A-4572-90A3-CDB8829F05F4}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Das Formular des IP-Scanners<\/span><\/b><\/p>\n<p>Zu guter Letzt fehlt noch ein Formular, in dem alle IP-Adressen &uuml;bersichtlich aufgelistet werden (siehe Bild 2).<\/p>\n<p>Das Formular besteht aus einem Hauptformular namens frmIPListe sowie einem Unterformular namens frmIPListe-Sub. Im Kopf des Hauptformulars kann der Benutzer einen Start- und Endbereich als Suchkriterium angeben. Zus&auml;tzlich kann er bestimmen, ob nur erreichbare Adressen aufgelistet werden sollen.<\/p>\n<p>&uuml;ber die Schaltfl&auml;che Scanner kann das Scanner-Formular aufgerufen werden. Einen Ausdruck der aktuellen Liste erm&ouml;glicht ein Klick auf die Bericht-Schaltfl&auml;che.<\/p>\n<p>Die IP-Datenbank bietet mit ihrer automatischen Scan-Funktion die einfache M&ouml;glichkeit, eine &uuml;bersicht &uuml;ber alle im Netzwerk angeschlossenen Ger&auml;te zu erlangen. Besonders wichtig ist dies in Anbetracht der aktuellen Gef&auml;hrdung durch Viren und W&uuml;rmer.  Nur wer alle Ger&auml;te in seinem Netzwerk kennt, kann diese vor Angriffen sch&uuml;tzen.<\/p>\n<p>Mit leichten Modifikationen l&auml;sst sich der Scanner auch gut zu &uuml;berwachungszwecken verwenden. So w&auml;re es beispielsweise denkbar, regelm&auml;&szlig;ig einen wichtigen Server zu pr&uuml;fen, an den Access Daten &uuml;bergeben m&ouml;chte. Sollte der Server nicht antworten, kann der Fehler dem Benutzer sofort mitgeteilt werden.<\/p>\n<p>Eine weitere Anwendung w&auml;re ein zeitgesteuerter, regelm&auml;&szlig;iger Scan-Vorgang, bei dem &auml;nderungen zum vorhergehenden Scan-Vorgang gesucht werden. Sollten hierbei Abweichungen festgestellt werden, wird ein Log-Eintrag geschrieben und eine zur Information eine E-Mail gesendet. So k&ouml;nnte beispielsweise festgestellt werden, wenn ein Mitarbeiter sein privates Notebook mit dem Netzwerk verbindet und hierdurch Sicherheitsl&uuml;cken entstehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In modernen Netzwerken wird heutzutage fast ausschlie&szlig;lich das TCP\/IP-Protokoll zur &Uuml;bertragung von Daten eingesetzt. Eine Besonderheit dieses Protokolls ist, dass jedes Endger&auml;t durch eine eindeutige IP-Adresse gekennzeichnet ist. Die im vorliegenden Beitrag vorgestellte L&ouml;sung hilft Ihnen bei der Verwaltung der IP-Adressen Ihres Netzwerks. Au&szlig;erdem erfahren Sie hier Grundlegendes zum Thema TCP\/IP und lernen, IP-Adressen per VBA auszulesen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662004,66032004,44000026,44000027],"tags":[],"class_list":["post-55000220","post","type-post","status-publish","format-standard","hentry","category-662004","category-66032004","category-Interaktiv","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>IP-Adressverwaltung mit IP-Scanner - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IP-Adressverwaltung mit IP-Scanner\" \/>\n<meta property=\"og:description\" content=\"In modernen Netzwerken wird heutzutage fast ausschlie&szlig;lich das TCP\/IP-Protokoll zur &Uuml;bertragung von Daten eingesetzt. Eine Besonderheit dieses Protokolls ist, dass jedes Endger&auml;t durch eine eindeutige IP-Adresse gekennzeichnet ist. Die im vorliegenden Beitrag vorgestellte L&ouml;sung hilft Ihnen bei der Verwaltung der IP-Adressen Ihres Netzwerks. Au&szlig;erdem erfahren Sie hier Grundlegendes zum Thema TCP\/IP und lernen, IP-Adressen per VBA auszulesen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:45+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"19\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"IP-Adressverwaltung mit IP-Scanner\",\"datePublished\":\"2020-05-06T15:17:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/\"},\"wordCount\":2745,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b0e3eb1ed45744469e282a941c326ff9\",\"articleSection\":[\"2004\",\"3\\\/2004\",\"Interaktiv\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/\",\"name\":\"IP-Adressverwaltung mit IP-Scanner - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b0e3eb1ed45744469e282a941c326ff9\",\"datePublished\":\"2020-05-06T15:17:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b0e3eb1ed45744469e282a941c326ff9\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b0e3eb1ed45744469e282a941c326ff9\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/IPAdressverwaltung_mit_IPScanner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IP-Adressverwaltung mit IP-Scanner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"IP-Adressverwaltung mit IP-Scanner - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/","og_locale":"de_DE","og_type":"article","og_title":"IP-Adressverwaltung mit IP-Scanner","og_description":"In modernen Netzwerken wird heutzutage fast ausschlie&szlig;lich das TCP\/IP-Protokoll zur &Uuml;bertragung von Daten eingesetzt. Eine Besonderheit dieses Protokolls ist, dass jedes Endger&auml;t durch eine eindeutige IP-Adresse gekennzeichnet ist. Die im vorliegenden Beitrag vorgestellte L&ouml;sung hilft Ihnen bei der Verwaltung der IP-Adressen Ihres Netzwerks. Au&szlig;erdem erfahren Sie hier Grundlegendes zum Thema TCP\/IP und lernen, IP-Adressen per VBA auszulesen.","og_url":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:45+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"19\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"IP-Adressverwaltung mit IP-Scanner","datePublished":"2020-05-06T15:17:45+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/"},"wordCount":2745,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9","articleSection":["2004","3\/2004","Interaktiv","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/","url":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/","name":"IP-Adressverwaltung mit IP-Scanner - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9","datePublished":"2020-05-06T15:17:45+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/b0e3eb1ed45744469e282a941c326ff9"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/IPAdressverwaltung_mit_IPScanner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"IP-Adressverwaltung mit IP-Scanner"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000220"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000220\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}