... und es selber noch probiert.
Arpwatch ist eigentlich zu mächtig, geht mit dem Interface in den promiscuous mode und dann hab' ich noch die IPs nicht der Reihe nach.
Erstes Ergebnis:
Code:
#!/usr/bin/perl
use IO::Socket;
$net = "192.168.0.";
$start = "1";
$end = "100";
$port = "139";
for ($i = $start; $i < $end; $i++) {
$host = (); # TCP Connect to port $port
$host = "$net$i";
$sock = ();
$sock = IO::Socket::INET->new(PeerAddr => "$host",
PeerPort => $port,
Proto => 'tcp');
if ($sock) {
$arpoutput = ();
$arpoutput = `arp -na $net$i`; # ARP-Abfrage
chomp $arpoutput; # Zeilenumbruch entfernen
@arp = split / /, $arpoutput; # splitten bei den Leerzeichen
splice(@arp, 0, 3); # Ersten drei Elemente "? (IP) at" entfernen
splice(@arp, 1, 3); # Rest entfernen
$nmb = (); # NMBLOOKUP
$nmb = `nmblookup -A $net$i |grep "<00> - B"`;
chomp $nmb; # Zeilenumbruch entfernen
@nmboutput = split /\s/, $nmb; # Leerzeichen splitten
$hostname = ();
$hostname = $nmboutput[1]; # mich interessiert nur das zweite Element
print "Added $hostname with IP: $host and MAC: $arp[0]\n";
}
else {
print "Connection to $host on Port: $port failed\n";
}
}
... ja ich programmiere nicht viel
Grüße
Manx
PS: das Bier steht trotzdem