Thread IPv4-Modul (6 answers)
Opened by rosti at 2011-05-20 16:11

rosti
 2011-05-19 20:20
#148857 #148857
User since
2011-03-19
3505 Artikel
BenutzerIn
[Homepage]
user image
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)

View full thread IPv4-Modul