#!c:/perl/bin/perl use strict; use warnings; use Net::Ping::External qw(ping); my $mgt_address = ''; my $dhcp_pool = ''; my $dhcp_network = ''; my $dhcp_mask = ''; my $dhcp_dgw = ''; my $wism_slot = ''; my $service_vlan = ''; my $native_vlan = ''; my $slot_list = ''; my @slots; my $current_host = ''; my @ip_hosts; my $vlan_list = ''; my %vlans; my @network; my $apply_status = ''; my $i; my $status; my $MYFILE; my $quit = 'n'; my $vlan_number; my $vlan_name; my @pieces; my @vlan_numbers; my @vlan_names; my @different; our $config_string; vlans(); do_split(); system ("cls"); sub vlan_number { if ($_[0]) { print "Enter the WiSM $_[0] VLAN:\n"; if ($_[0] eq 'native') { chomp ($native_vlan = <>); $vlan_number = $native_vlan; } else { chomp ($service_vlan = <>); $vlan_number = $service_vlan; } } else { print "Enter the VLAN number:\n"; chomp ($vlan_number = <>); } @pieces = split (//,$vlan_number); #foreach (@pieces) { # print "$_ \n"; #} foreach (@pieces) { if ($_ =~ /[a-zA-Z]/) { print "Your VLAN number can only contain digits 0-9.\n"; vlan_number(); } } if ($_[0] eq 'native') { if (($vlan_number ~~ [1..1001]) || ($vlan_number ~~ [1006..4094])) { return $vlan_number; } else { print "VLAN number $vlan_number is invalid.\n"; print "Valid VLANs are 1-1001 and 1006-4094.\n"; vlan_number(); } } if (($vlan_number ~~ [2..1001]) || ($vlan_number ~~ [1006..4094])) { return $vlan_number; } else { print "VLAN number $vlan_number is invalid.\n"; print "Valid VLANs are 2-1001 and 1006-4094.\n"; vlan_number(); } } #End vlan_number sub vlan_name { print "Enter the VLAN name (without spaces):\n"; chomp ($vlan_name = <>); print "You entered: $vlan_name\n"; @different = split (/ */,$vlan_name); print join(':', split(/ */, 'hi there')), "\n"; print join(':', split(/ */, $vlan_name)), "\n"; for (my $j=0; $j]\n"; vlan_name(); } if ($different[$j] =~ /\s/) { print "WARNING: Your VLAN name cannot contain spaces.\n"; vlan_name(); } else { return; } } } sub vlans { vlan_number("native"); push (@vlan_numbers, $vlan_number); push (@vlan_names, "WiSM_Native"); vlan_number("service"); push (@vlan_numbers, $vlan_number); push (@vlan_names, "WiSM_Service"); print "Setup data VLANs. Enter 'q' when finished.\n\n"; while ($quit ne 'q') { #$array{$key} = $value; vlan_number(); vlan_name(); push (@vlan_numbers, $vlan_number); push (@vlan_names, $vlan_name); print "Add another? 'q' to quit, ENTER to continue...\n\n"; chomp ($quit = <>); } for (my $j = 0; $j $vlan_names[$j]\n"; } } #End VLANs sub quit_check { #my $key = getc(STDIN); #print "Entered value is $key\n"; chomp ($quit = <>); if (($quit eq '') || ($quit eq 'q')) { return; } else { print "Press ENTER to continue, or 'q' to QUIT.\n"; quit_check(); } } sub do_split { my $str = "I'm not as think as you stoned I am"; # split into individual words on whitespace delimiter # and store in array @words my @words = split (/ /, $str); for (my $j=0; $j