init III
This commit is contained in:
BIN
Perl arp cache per snmp durchsuchen/new/libsnmp.dll
Normal file
BIN
Perl arp cache per snmp durchsuchen/new/libsnmp.dll
Normal file
Binary file not shown.
21
Perl arp cache per snmp durchsuchen/new/menu.pl
Normal file
21
Perl arp cache per snmp durchsuchen/new/menu.pl
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/bin/perl
|
||||
|
||||
use lib '/MoVA/';
|
||||
use strict;
|
||||
use menu;
|
||||
|
||||
my %main;
|
||||
$main{'a'} = ['Punkt 1', '#function1'];
|
||||
$main{'z'} = ['Ende', '#quit'];
|
||||
$main{'desc'} = 'TEST';
|
||||
|
||||
show(\%main);
|
||||
|
||||
sub function1 {
|
||||
print "HALLO";
|
||||
<STDIN>;
|
||||
show(\%main);
|
||||
}
|
||||
sub quit {
|
||||
exit;
|
||||
}
|
||||
75
Perl arp cache per snmp durchsuchen/new/menu.pm
Normal file
75
Perl arp cache per snmp durchsuchen/new/menu.pm
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/bin/perl
|
||||
|
||||
# Key: Shortcut im Menü
|
||||
# Value: Array aus Menüpunkttext und Aktion
|
||||
# Aktion kann weiterer Menüpunkt sein, oder Funktion die aufgerufen werden soll
|
||||
# Für Menüpunkt muss ein Hash mit diesem Namen angelegt werden, der ein weiteres
|
||||
# Menü beschreibt.
|
||||
# Für Funktion muss das erste Zeichen eine Raute (#) sein. Eine Funktion mit dem
|
||||
# entspr. Namen muss angelegt sein.
|
||||
# Bei jedem Menüpunkt kann eine Beschreibung angegeben werden, dazu ist bei dem entspr.
|
||||
# Menühash ein Key 'desc' mitanzulegen. Der Value ist ein Skalar der den Menünamen enthält.
|
||||
|
||||
|
||||
# Beispielkonfig mit Aufruf
|
||||
#$haupt{'1'} = ['Adressen', 'adressen'];
|
||||
#$haupt{'2'} = ['Sagem', 'sagem'];
|
||||
#$haupt{'3'} = ['Nokia', 'nokia'];
|
||||
#$haupt{'e'} = ['Ende', '#bye'];
|
||||
#$haupt{'desc'} = "Hauptmenü";
|
||||
|
||||
#$adressen{'1'} = ['Suchen', '#adr_suchen'];
|
||||
#$adressen{'z'} = ['Zurück', 'haupt'];
|
||||
#$adressen{'desc'} = "Adressen";
|
||||
|
||||
#$sagem{'z'} = ['Zurück', 'haupt'];
|
||||
#$sagem{'desc'} = "Sagem";
|
||||
|
||||
#$nokia{'z'} = ['Zurück', 'haupt'];
|
||||
#$nokia{'desc'} = "Nokia";
|
||||
|
||||
#menue("haupt");
|
||||
|
||||
package menu;
|
||||
|
||||
use Exporter;
|
||||
use Win32::Console::ANSI;
|
||||
use Term::ANSIScreen qw/:color :cursor :screen/;
|
||||
|
||||
@ISA = ('Exporter');
|
||||
@EXPORT = (@EXPORT,'show');
|
||||
|
||||
sub show {
|
||||
no strict;
|
||||
($me) = @_;
|
||||
%menu = %$me;
|
||||
do {
|
||||
print "\e[2J";
|
||||
print "----- $menu{'desc'} -----\n\n";
|
||||
foreach (sort keys %menu) {
|
||||
if ($_ eq 'desc') { next; }
|
||||
print " ";
|
||||
print Term::ANSIScreen::colored(" $_",'black on white');
|
||||
print " $menu{$_}->[0]\n\n";
|
||||
}
|
||||
print "\nAuswahl:";
|
||||
$auswahl = <STDIN>;
|
||||
chomp $auswahl;
|
||||
$ok=0;
|
||||
foreach (sort keys %menu) {
|
||||
if ("$_" eq "$auswahl") {
|
||||
$ok = 1;
|
||||
}
|
||||
}
|
||||
} while (!$ok);
|
||||
$para = "$menu{$auswahl}->[1]";
|
||||
if ($para =~ /#/) {
|
||||
$para =~ s/#//;#,$para;
|
||||
$fkt="main::$para";
|
||||
&$fkt;
|
||||
}
|
||||
else {
|
||||
# show(\{%$para});
|
||||
}
|
||||
}
|
||||
1;
|
||||
79
Perl arp cache per snmp durchsuchen/new/menue.pm
Normal file
79
Perl arp cache per snmp durchsuchen/new/menue.pm
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/bin/perl
|
||||
|
||||
# Key: Shortcut im Menü
|
||||
# Value: Array aus Menüpunkttext und Aktion
|
||||
# Aktion kann weiterer Menüpunkt sein, oder Funktion die aufgerufen werden soll
|
||||
# Für Menüpunkt muss ein Hash mit diesem Namen angelegt werden, der ein weiteres
|
||||
# Menü beschreibt.
|
||||
# Für Funktion muss das erste Zeichen eine Raute (#) sein. Eine Funktion mit dem
|
||||
# entspr. Namen muss angelegt sein.
|
||||
# Bei jedem Menüpunkt kann eine Beschreibung angegeben werden, dazu ist bei dem entspr.
|
||||
# Menühash ein Key 'desc' mitanzulegen. Der Value ist ein Skalar der den Menünamen enthält.
|
||||
|
||||
|
||||
# Beispielkonfig mit Aufruf
|
||||
#$haupt{'1'} = ['Adressen', 'adressen'];
|
||||
#$haupt{'2'} = ['Sagem', 'sagem'];
|
||||
#$haupt{'3'} = ['Nokia', 'nokia'];
|
||||
#$haupt{'e'} = ['Ende', '#bye'];
|
||||
#$haupt{'desc'} = "Hauptmenü";
|
||||
|
||||
#$adressen{'1'} = ['Suchen', '#adr_suchen'];
|
||||
#$adressen{'z'} = ['Zurück', 'haupt'];
|
||||
#$adressen{'desc'} = "Adressen";
|
||||
|
||||
#$sagem{'z'} = ['Zurück', 'haupt'];
|
||||
#$sagem{'desc'} = "Sagem";
|
||||
|
||||
#$nokia{'z'} = ['Zurück', 'haupt'];
|
||||
#$nokia{'desc'} = "Nokia";
|
||||
|
||||
#menue(\%haupt);
|
||||
#use Win32::Console::ANSI;
|
||||
#use Term::ANSIScreen qw/:color :cursor :screen/;
|
||||
|
||||
package menue;
|
||||
|
||||
sub zeigen {
|
||||
($me) = @_;
|
||||
%menu = %$me;
|
||||
|
||||
do {
|
||||
#print "\e[2J";
|
||||
my @subst = (['ä','ae'],['ö','oe'],['ü','ue'],['ß','ss'],['Ä','Ae'],['Ö','Oe'],['Ü','Ue']);
|
||||
foreach (@subst) {
|
||||
$menu{'desc'} =~ s/$_->[0]/$_->[1]/g;
|
||||
}
|
||||
|
||||
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n----- $menu{'desc'} -----\n\n";
|
||||
foreach my $mp (sort keys %menu) {
|
||||
if ($mp eq 'desc') { next; }
|
||||
foreach (@subst) {
|
||||
$menu{$mp}->[0] =~ s/$_->[0]/$_->[1]/g;
|
||||
}
|
||||
print " $mp $menu{$mp}->[0]\n\n";
|
||||
}
|
||||
|
||||
print "\nAuswahl:";
|
||||
$auswahl = <STDIN>;
|
||||
chomp $auswahl;
|
||||
$ok=0;
|
||||
foreach (sort keys %menu) {
|
||||
if ("$_" eq "$auswahl") {
|
||||
$ok = 1;
|
||||
}
|
||||
}
|
||||
} while (!$ok);
|
||||
|
||||
$para = "$menu{$auswahl}->[1]";
|
||||
if ($para =~ /#/) {
|
||||
$para =~ s/#//,$para;
|
||||
$fkt="main::$para";
|
||||
&$fkt;
|
||||
}
|
||||
else {
|
||||
menue::zeigen("$para");
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
35
Perl arp cache per snmp durchsuchen/new/search.kpf
Normal file
35
Perl arp cache per snmp durchsuchen/new/search.kpf
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Komodo Project File - DO NOT EDIT -->
|
||||
<project id="8D1ED6C9-A2B4-485E-8348-A39DE479B497" name="search" kpf_version="2">
|
||||
<preference-set id="">
|
||||
</preference-set>
|
||||
<file url="menu.pm" id="8E6CD4E3-CA76-4060-A31E-32FE2D27D27E" name="menu.pm">
|
||||
</file>
|
||||
<file url="search.pl" id="3F0E9C0D-B326-4455-BCF3-C45D5A588336" name="search.pl">
|
||||
<preference-set id="">
|
||||
<string id="lastInvocation">default</string>
|
||||
<preference-set id="Invocations">
|
||||
<preference-set id="default">
|
||||
<string id="postparams"></string>
|
||||
<string id="userEnvironment"></string>
|
||||
<string id="warnings">enabled</string>
|
||||
<boolean id="use-console">0</boolean>
|
||||
<string id="getparams"></string>
|
||||
<string id="executable-params"></string>
|
||||
<boolean id="sim-cgi">0</boolean>
|
||||
<string id="filename">G:\Dokumentation\Sonstige Perl-Skripte\arpsearch\new\search.pl</string>
|
||||
<string id="request-method">GET</string>
|
||||
<long id="debugger.io-port">9011</long>
|
||||
<string id="params"></string>
|
||||
<string id="mpostparams"></string>
|
||||
<string id="posttype">application/x-www-form-urlencoded</string>
|
||||
<string id="documentRoot"></string>
|
||||
<string id="cookieparams"></string>
|
||||
<boolean id="show-dialog">1</boolean>
|
||||
<string id="cwd"></string>
|
||||
<string id="userCGIEnvironment"></string>
|
||||
</preference-set>
|
||||
</preference-set>
|
||||
</preference-set>
|
||||
</file>
|
||||
</project>
|
||||
161
Perl arp cache per snmp durchsuchen/new/search.pl
Normal file
161
Perl arp cache per snmp durchsuchen/new/search.pl
Normal file
@@ -0,0 +1,161 @@
|
||||
#!/bin/perl
|
||||
|
||||
use menu;
|
||||
use strict;
|
||||
|
||||
my %haupt;
|
||||
my %konfig;
|
||||
my %ip_mac_hash;
|
||||
my %switch_hash;
|
||||
my $community='con';
|
||||
|
||||
|
||||
$haupt{'1'} = ['IP', '#search_ip'];
|
||||
$haupt{'2'} = ['MAC', '#search_mac'];
|
||||
$haupt{'3'} = ['Switch/Port', '#search_switchport'];
|
||||
$haupt{'a'} = ['ARP Caches lesen','#read_arp'];
|
||||
$haupt{'m'} = ['MAC Tables lesen','#read_mac'];
|
||||
$haupt{'x'} = ['Ende', '#bye'];
|
||||
$haupt{'desc'} = "fucking menu";
|
||||
|
||||
show(\%haupt);
|
||||
|
||||
sub read_arp {
|
||||
%ip_mac_hash = ();
|
||||
create_host_mac_hash('10.1.1.250',\%ip_mac_hash);
|
||||
create_host_mac_hash('10.3.2.51',\%ip_mac_hash);
|
||||
create_host_mac_hash('10.3.2.52',\%ip_mac_hash);
|
||||
create_host_mac_hash('90.200.31.21',\%ip_mac_hash);
|
||||
create_host_mac_hash('90.200.31.23',\%ip_mac_hash);
|
||||
show(\%haupt);
|
||||
}
|
||||
|
||||
sub read_mac {
|
||||
%switch_hash = ();
|
||||
create_switch_hash("10.1.1.101",\%switch_hash);
|
||||
create_switch_hash("10.1.1.103",\%switch_hash);
|
||||
create_switch_hash("10.1.1.104",\%switch_hash);
|
||||
create_switch_hash("10.1.1.106",\%switch_hash);
|
||||
create_switch_hash("10.1.1.107",\%switch_hash);
|
||||
create_switch_hash("10.1.1.112",\%switch_hash);
|
||||
show(\%haupt);
|
||||
}
|
||||
sub search_ip {
|
||||
my $mac;
|
||||
my $found=0;
|
||||
print "IP?";
|
||||
my $ip = <STDIN>;
|
||||
chomp $ip;
|
||||
foreach (keys %ip_mac_hash) {
|
||||
if ($_ eq $ip) {
|
||||
$mac = $ip_mac_hash{$ip};
|
||||
$found=1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
if ($found==1) {
|
||||
print "\nGesuchte IP: $ip\nGefundene MAC-Adresse: $mac\n";
|
||||
foreach my $swip (keys %switch_hash) {
|
||||
my $count;
|
||||
foreach my $int (keys %{$switch_hash{$swip}}) {
|
||||
foreach my $maconsw (@{$switch_hash{$swip}{$int}{'MAC'}}) {
|
||||
$count++;
|
||||
print "$count $maconsw $mac\n";
|
||||
if ($maconsw eq $mac) {
|
||||
print "Switch: $swip\nPort: $switch_hash{$swip}{$int}{'ifDesc'}\n";
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<STDIN>;
|
||||
show(\%haupt);
|
||||
}
|
||||
sub search_mac {
|
||||
show(\%haupt);
|
||||
}
|
||||
sub search_switchport {
|
||||
show(\%haupt);
|
||||
}
|
||||
sub bye {
|
||||
exit;
|
||||
}
|
||||
sub check_ip {
|
||||
my ($ip) = @_;
|
||||
my $ok=0;
|
||||
my ($i1,$i2,$i3,$i4);
|
||||
if ( ($i1,$i2,$i3,$i4) = $ip =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$/ ) {
|
||||
$ok=1 if ($i1 < 255 and $i2 < 255 and $i3 < 255 and $i4 < 255);
|
||||
}
|
||||
return $ok;
|
||||
}
|
||||
sub check_mac {
|
||||
my ($mac) = @_;
|
||||
my $ok=0;
|
||||
$ok=1 if ( $mac =~ /^[0-9a-f]{2}\.[0-9a-f]{2}\.[0-9a-f]{2}\.[0-9a-f]{2}\.[0-9a-f]{2}\.[0-9a-f]{2}$/i );
|
||||
return $ok;
|
||||
}
|
||||
sub check_switch_port {
|
||||
my ($switchport)=@_;
|
||||
my $ok=0;
|
||||
my ($ip,$port) = split /\//,$switchport;
|
||||
$ok=1 if (check_ip($ip) and check_port($port));
|
||||
return $ok;
|
||||
}
|
||||
sub check_port {
|
||||
my ($port)=@_;
|
||||
my $ok=0;
|
||||
$ok=1 if ($port =~ /^[0-9]{1,2}$/ or $port =~ /^[a-z]{1}[0-9]{1}$/i);
|
||||
return $ok;
|
||||
}
|
||||
sub create_host_mac_hash {
|
||||
my ($switchip,$hashref)=@_;
|
||||
my @array;
|
||||
@array = `snmpwalk -mall -c $community $switchip .1.3.6.1.2.1.4.22.1.2`;
|
||||
foreach (@array) {
|
||||
chomp;
|
||||
my ($ip,$mac) = $_ =~ /([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*) = Hex: ([0-9a-f ]*) $/i;
|
||||
$mac =~ s/ /./g;
|
||||
$$hashref{"$ip"}="$mac";
|
||||
}
|
||||
print "";
|
||||
}
|
||||
sub create_switch_hash {
|
||||
my ($switchip,$hashref)=@_;
|
||||
my @array;
|
||||
@array = `snmpwalk -mall -c $community $switchip .1.3.6.1.2.1.17.4.3.1.1`; # MAC-Adr auf Switch ermitteln
|
||||
foreach (@array) {
|
||||
chomp;
|
||||
my ($m1,$m2,$m3,$m4,$m5,$m6) = $_ =~ /= Hex: ([0-9a-f]{2}) ([0-9a-f]{2}) ([0-9a-f]{2}) ([0-9a-f]{2}) ([0-9a-f]{2}) ([0-9a-f]{2})/i;
|
||||
my $mac="$m1."."$m2."."$m3."."$m4."."$m5."."$m6"; # MACs nach Dezimal umwandeln
|
||||
my $d1 = hex($m1);
|
||||
my $d2 = hex($m2);
|
||||
my $d3 = hex($m3);
|
||||
my $d4 = hex($m4);
|
||||
my $d5 = hex($m5);
|
||||
my $d6 = hex($m6);
|
||||
|
||||
my $oid=".1.3.6.1.2.1.17.4.3.1.2.$d1.$d2.$d3.$d4.$d5.$d6";
|
||||
my $line=`snmpwalk -mall -c $community $switchip $oid`; # Interface auf dem MAC liegt suchen
|
||||
chomp $line;
|
||||
my ($interface) = $line =~ / = ([0-9]{2})$/;
|
||||
# print "$interface\n";
|
||||
push @{$$hashref{$switchip}{$interface}{'MAC'}},$mac unless ($interface eq "");
|
||||
}
|
||||
foreach my $ip (keys %$hashref) {
|
||||
foreach my $intid (keys %{$$hashref{$ip}}) {
|
||||
# .1.3.6.1.2.1.2.2.1.2 => ifDescr; dazu noch .$intid anhängen
|
||||
# .1.3.6.1.2.1.2.2.1.4 => ifMTU; dazu noch .$intid anhängen
|
||||
# ...
|
||||
my $oid = ".1.3.6.1.2.1.2.2.1.2." . $intid;
|
||||
my $line=`snmpwalk -mall -c $community $switchip $oid`;
|
||||
my ($portname) = $line =~ /"([a-z0-9]{1,2})"/i;
|
||||
$$hashref{$switchip}{$intid}{'ifDesc'} = $portname;
|
||||
# print "$$hashref{$switchip}{$intid}{'ifDesc'}\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
1;
|
||||
BIN
Perl arp cache per snmp durchsuchen/new/snmptrap.exe
Normal file
BIN
Perl arp cache per snmp durchsuchen/new/snmptrap.exe
Normal file
Binary file not shown.
BIN
Perl arp cache per snmp durchsuchen/new/snmpwalk.exe
Normal file
BIN
Perl arp cache per snmp durchsuchen/new/snmpwalk.exe
Normal file
Binary file not shown.
12
Perl arp cache per snmp durchsuchen/new/test.pl
Normal file
12
Perl arp cache per snmp durchsuchen/new/test.pl
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/perl
|
||||
|
||||
my %konfig=(v1 => k1, v2 => k2);
|
||||
my $para = 'konfig';
|
||||
|
||||
|
||||
print %{$para};
|
||||
print "\n\n";
|
||||
print %konfig;
|
||||
|
||||
|
||||
print "";
|
||||
5
Perl arp cache per snmp durchsuchen/new/~5676-0.html
Normal file
5
Perl arp cache per snmp durchsuchen/new/~5676-0.html
Normal file
@@ -0,0 +1,5 @@
|
||||
65
|
||||
|
||||
65
|
||||
|
||||
65
|
||||
Reference in New Issue
Block a user