I think I'm just down to the regular expression I need to find the line in the hosts file. I am bound by the modules already implemented within the Perl build on the laptops which does not include Regex so I can't use $RE{net}{IPv4}. In the following segment of the script I have the expression to verify that there are four :
if( $vmServerIP =~ m/^(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)/ +){ if($1 <= 255 && $2 <= 255 && $3 <= 255 && $4 <= 255){ open (my $oldhfile, ,'<', $hfilepath) or die "Could not open $hf +ilepath for reading."; my @hfile = <$oldhfile>; # # read each line to find the lines that lead with an IP address # and then find the line with HOSTNAME in it and replace that IP # address with the provided one # foreach $hfileline (@hfile) { next unless $hfileline =~/^\s*\s+$hNames/; $hfileline = "$vmServerIP $hNames\n"; }
I'm pretty sure that the validation of the format of the octets is working correctly. However, I'm having issues with formulating the regular expression in the foreach loop if anyone could provide me with some guidance.
-nasIn reply to update winxp hosts file with new IP address by notasaint
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |