![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
|
|
Themen-Optionen | Ansicht |
|
|
#8 |
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
... 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";
}
}
![]() Grüße Manx PS: das Bier steht trotzdem |
|
|
|
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|