VBA Makro für IP-Adressen

Microsoft Excel hat leider kein Datenformat für IP-Adressen und daher kann man mit Excel auch schlecht IP-Adressen sortieren oder verarbeiten. IPv4 Adressen werden i.d.R. als ASCII String aus Zahlen und Punkten im so genannten „dotted decimal“ Format notiert. Die Subnetzmaske wird i.d.R. als Ganzzahl mit der Anzahl der Subnetz Bits angegeben. Hier ein Beispiel:

Theorie

Die ASCII/String IP-Adresse kann man wie folgt in einen numerischen Wert umzuwandeln:

Theoretisch kann man so alle IPv4 Adressen im Bereich 0.0.0.0 (=0) und 255.255.255.255 (=4294967295) darstellen. Praktisch werden IPv4 Adressen im Bereich 0.0.0.0 bis 223.255.255.255 (=3758096383) verwendet. Excel VBA 7 (2010) bietet keinen ganzzahligen Datentyp für diese Zahl (LongLong), daher muss der numerische Wert als Gleitkommazahlen (Double) dargestellt werden.

Wenn man die IP-Adresse mit der Subnetzmaske binär „und“ verknüpft, erhält man die IP-Adresse des dazugehörigen Netzwerks:

ASCII to Numeric

Die Funktion aton() wandelt einen ASCII-String in einem numerischen Wert um. Der Funktionsname ist angeleht an die MySQL-Funktion inet_aton(expr)

Numeric to ASCII

Die Funktion ntoa() wandelt einen numerischen Wert in einen ASCII-String um. Der Funktionsname ist angelehnt an die MySQL-Funktion inet_ntoa(expr

ASCII to Subnet (numeric)

Die Funktion atosn() errechnet aus IP-Adresse (ASCII-String) und Subnetzmaske (Zahl) die IP-Adresse des dazugehörigen IP-Subnetzes (numerischen Wert). Die Funktion ist hilfreich umd IP-Adressen aus gleichen Subnetzen zu identifizieren.

Links

  1. https://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton
  2. https://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-ntoa
Veröffentlicht in Technik Getagged mit: ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*