![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
Hi @all!
Ich hätte gerne von Linux aus (mit PERL) ein paar Daten der Windowsclients gesammelt (IP MAC und Hostname) IP MAC kein Problem => ping, arp Für den Hostnamen fiel mir als erstes smbclient ein, das wurde mir aber beim Gedanken an die RegExp schlecht. Zweiter Versuch mit nmblookup: eine Annäherung Code:
gateway:~# nmblookup -A 192.168.0.1
Looking up status of 192.168.0.1
MANX <00> - B <ACTIVE>
MANX <20> - B <ACTIVE>
ZUHAUSE <00> - <GROUP> B <ACTIVE>
ZUHAUSE <1e> - <GROUP> B <ACTIVE>
ZUHAUSE <1d> - B <ACTIVE>
usw.
Code:
gateway:~# nmblookup -A 192.168.0.1 | grep "<00> - B"
MANX <00> - B <ACTIVE>
Code:
gateway:~# nmblookup -A 192.168.0.1 | grep "<00> - B" | awk '{print$1}'
MANX
gateway:~#
Grüße Manx |
|
|
|
|
|
#2 |
|
Elite
![]() |
Bin leider auch kein Profi was awk angeht (so praktisch es ist) und hab auch keine bessere Lösung als deine gefunden...
Aber vielleicht hilft dir diese Seite: http://www-personal.umich.edu/~jlawl...edawkperl.html |
|
|
|
|
|
#3 |
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
Hi Citizen!
Thx für den Link, schau's mir an. Das ganze soll die Erstellung einer DHCPd.conf etwas automatisieren. Wenn's (mal) fertig ist, werd ich's posten, dann könnt ihr's zerreißen ![]() Grüße Manx |
|
|
|
|
|
#4 | |
|
Elite
![]() |
Zitat:
http://www.tldp.org/HOWTO/Diskless-r...r-HOWTO-7.html (Es ist bei Appendix B) Vielleich hilft dir das! |
|
|
|
|
|
|
#5 |
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
Hey, es hat mich ja gewundert, dass es sowas nicht fertig gibt.
Scheinbar gibt's nur Probleme mit den Windowshostnamen, schreibt immer "unknown". Schau's mir aber noch genauer an ![]() Danke Manx |
|
|
|
|
|
#6 |
|
Inventar
![]() Registriert seit: 27.02.2001
Beiträge: 1.967
|
... Citizen428, hast Dir ein Bier (bzw. fast ein Sternderl) verdient, auf einem Forumtreffen vielleicht?
Damit kann man was anfangen, die Windowshostnamen bau ich noch ein! 1000 Dank Manx |
|
|
|
|
|
#7 | |
|
Elite
![]() |
Zitat:
Bis zum Nächsten dauert es eh nicht mehr allzu lang.ad 2. Bitte gerne! |
|
|
|
|
|
|
#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) | |
|
|