Wieder ein kleines aber feines Modul fertig: IPv4.
Da gibts zwar schon Einige von auf CPAN, aber ich habe meins speziell auf CGIs zugeschnitten, so ist z.B. die Fehlerbehandlung nicht mit Carp gemacht, sondern läuft über zwei spezielle Attribute [ERR} und {VALID}.
Der Konstruktor
my $ipo = IPv4->new('10.0.0.1/28'); gibt in jedem Fall ein Objekt zurück, auch, wenn IP/CIDR nicht valid sind, das sind ERR und VALID entsprechend gesetzt und es gibt die Methoden
$ipo->valid; $ipo->errstr; um das Abfragen zu können.
Schönes Feature ist die Delegation von
Net::Ping zu $ipo->ping und Increment/Decrement
$ipo++; $ipo--; zum Hoch- oder Runterzählen der IP-Adresse, so können ganze Netze gepingt werden.
IPv4 verfügt über eine Methode zum Erzeugen von Subnetzen,
$ipo->newmasklen(30); gibt zwei Subnetz-Objekte zurück, sofern die Maskenlänge vorher kleiner war, auch die Anzahl der Subnetze wird zurückgegeben.
Ja, und dann gibts noch vier neue Methoden: nextnet(), prevnet(), womit das nächsthöhere oder -niedere angrenzende Netz ermittelt werden kann sowie lastnet() und firstnet() zum Ermitteln des ersten bzw. letzten möglichen Netzes im Range. Selbstverständlich kann ein IP-Objekt auch ge-cloned werden ;)
Jetzt kann ich damit meinen Subnet/VLSM-Calculator überarbeiten, demnächst auf meiner Seite.
Splitted from Thread zum Freuen 2.0 msg #125588
Last edited: 2011-05-20 16:11:55 +0200 (CEST)