#!/usr/bin/perl use strict; use DBI; use vars qw(%VLANS $DB_USER $DB_PASS); require 'dbi.ph'; %VLANS = ( 'SDCC' => {'ip' => '10.101', 'vlan' => 'Vlan100', 'gw' => '10.101.0.1',}, 'NODE' => {'ip' => '10.102', 'vlan' => 'Vlan100', 'gw' => '10.102.0.1',}, 'HILTON' => {'ip' => '10.103', 'vlan' => 'Vlan100', 'gw' => '10.103.0.1',}, 'HYATT' => {'ip' => '10.104', 'vlan' => 'Vlan100', 'gw' => '10.104.0.1',}, ); my $dsn = "DBI:mysql:database=noc"; my $dbh = DBI->connect($dsn, $DB_USER, $DB_PASS, {PrintError => 0}) or die "ERROR: Failed to connect to the database."; foreach my $loc (keys %VLANS) { my $lref = $VLANS{$loc}; my $vlan = $lref->{'vlan'}; my $ip = $lref->{'ip'}; my $gw = $lref->{'gw'}; for (my $i = 1 ; $i < 256 ; $i++) { for (my $j = 1 ; $j < 255 ; $j++) { my $sql = 'REPLACE INTO ADDRESSES (address, router, mask, mgmt_vlan, location, used) VALUES (?, ?, ?, ?, ?, ?)'; my $sth = $dbh->prepare($sql); if (!$sth) { print STDERR "Failed to prepare query '$sql': " . $dbh->errstr . "\n"; next; } my @params = ( $ip . ".$i.$j", $gw, '255.255.0.0', $vlan, $loc, '0' ); my $res = $sth->execute(@params); if (!$res) { print STDERR "Failed to execute query '$sql': " . $dbh->errstr . "\n"; next; } } } }