Concord/GetNamefromIP

From s23
Jump to navigation Jump to search

this is a nice basic script that uses oracle's sql to get the element names that have a matching IP address.

# more getNamefromIP.pl
#!/bin/perl
use strict;
use warnings;
# simple script that outputs the names of elements that have an IPaddress given as and argument
# added in a simple IP address test (NOTE this is not a full IPV4 test ie it will alow 333.x.x.x)
# but we wont worry about that as its only querying a database and will just retuirn no values 
# if not found. usage 'getNamefromIP.pl x.x.x.x'


my $oraUser="user name here";
my $oraPassword="password here";
my $oraPath="path to sqlplus command here"; # eg "/oracle/bin"
my $ipAddress=$ARGV[0] || die "Missing args  $!";      # get  ipAddress

if ($ipAddress !~ /^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/) {die "not a valid IPAddress";}
my $elements = qx{$oraPath/sqlplus -S $oraUser/$oraPassword <<EOF
set head off
SELECT NAME from NH_ELEMENT where IP_ADDRESS='$ipAddress';
exit
EOF };

foreach my $segment (split(/ /,$elements)) {
   next if /^$/;
   next if /rows selected\.$/;
   next if /no rows selected/;
   print "$segment\n";
}

related: Perl

Back to Concord Index