Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
#! /usr/bin/perl -i =head1 NAME netswap.pl =head1 AUTHOR Daniel Kelemen =head1 SYNOPSIS netswap.pl [FILENAME]- Scan the configuration file and setup local networking parameters based upon contents. nconf files should be of form: hostname: foo domainname: bar.com ip: 192.168.16.42 subnetmask: 255.255.0.0 gateway: 192.168.1.1 dns: 192.168.2.1 =head1 DESCRIPTION Switch local network parameters =cut my $line = my $param_name = my $param_val = ""; my $filename = shift || die "Usage: netswap.pl CONFILENAME\n"; open(FH,"$filename") || die "Could not open network configuration file +: [$filename] for reading.\n"; while(<FH>){ $line = $_; next unless ($line !~ m/^\s*$/) or ($line !~ m/^\s*\#/); $line =~ m/^(.*):(.*)$/; $param_name = $1; $param_val = $2; $param_name =~ s/^\s*//g; $param_name =~ s/\s*$//g; $param_val =~ s/^\s*//g; $param_val =~ s/\s.*$//g; ${$param_name} = $param_val; } close FH; print "new hostname = [$hostname]\nnew domainname = [$domainname]\nnew + ip = [$ip]\nnew Subnet Mask = [$subnetmask]\nnew DNS = [$dns]\nnew g +ateway = [$gateway]\n"; # We do /etc/hosts: my %pass = ("^.*$hostname.*" => "$ip\t$hostname.$domainname\t$hostname +"); # Replace the whole line for this hostname. file_edit("/etc/hosts",\%pass); # We do /etc/sysconfig/network: %pass = ("^GATEWAY.*" => "GATEWAY=\"$gateway\"","^HOSTNAME.*" => "HOST +NAME=\"$hostname\"","^DOMAINNAME.*" => "DOMAINNAME=\"$domainname\""); file_edit("/etc/sysconfig/network",\%pass); # We do /etc/sysconfig/network-scripts/ifcfg-eth0; %pass = ("^IPADDR.*" => "IPADDR=\"$ip\"","^NETMASK.*" => "NETMASK=\"$ +subnetmask\""); file_edit("/etc/sysconfig/network-scripts/ifcfg-eth0" +,\%pass); # We do the /etc/resolv.conf: %pass = ("^nameserver.*" => "nameserver $dns","^SEARCH.*" => "SEARCH $ +domainname"); file_edit("/etc/resolv.conf",\%pass); `/etc/init.d/network restart`; # FIN ########################file_edit################### =head1 file_edit(@) accepts: list containing filename to edit as first item, hash reference as second item. Hash should contain search expressions as keys, replacement expressions as values. eg. file_edit("/etc/hosts",(foo => bar)); will replace all occurrences of 'foo' with 'bar' in /etc/hosts. =cut sub file_edit(@) { my $filename = shift; my $hash_ref = shift; my %lines = %$hash_ref; die "File [$filename] cannot be found!\n" unless (-e $filename); @ARGV = ($filename); # put the filename where perl can find it. while(<>){ $line = $_; foreach $search (keys %lines){ if ($line =~ m/$search/i) { # not sure about insensitivity here. $line =~ s/$search/$lines{$search}/ig; } } print $line; } # End while line read for file } # End file_edit.

In reply to netswap.pl by malloc

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others meditating upon the Monastery: (7)
    As of 2014-08-23 12:28 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      The best computer themed movie is:











      Results (173 votes), past polls