[Gelöst] Wie ip's im Netzwerk sammeln (script nmap)
[Gelöst] Wie ip's im Netzwerk sammeln (script nmap)
Hi,
ich möchte im Netzwerk mit einem Script scannen, welche PCs bzw. Geräte mit welcher IP an meinem Server bzw im Netzwerk waren und das Ergebniss in einer Datei sammeln.
Wie kann ich das bewerkstelligen, dass keine Einträge doppelt in meiner Zieldatei existieren ?
mit
nmap -sP 192.168.22.0-256 >> /root/ipusage.txt
wird meine Liste ja immer länger.
Irgendwie fehlt mir hier der grep teil.
und wie mache ich aus der 2 Zeiligen Ausgabe von nmap -sP eine einzeilige ?
ich möchte im Netzwerk mit einem Script scannen, welche PCs bzw. Geräte mit welcher IP an meinem Server bzw im Netzwerk waren und das Ergebniss in einer Datei sammeln.
Wie kann ich das bewerkstelligen, dass keine Einträge doppelt in meiner Zieldatei existieren ?
mit
nmap -sP 192.168.22.0-256 >> /root/ipusage.txt
wird meine Liste ja immer länger.
Irgendwie fehlt mir hier der grep teil.
und wie mache ich aus der 2 Zeiligen Ausgabe von nmap -sP eine einzeilige ?
Zuletzt geändert von Huck Fin am 27.10.2011 14:43:07, insgesamt 1-mal geändert.
Re: Wie ip's im Netzwerk sammeln (script nmap)
nmap -sP 192.168.22.0-256 |grep "scan report" > /root/ipusage.txt
Meinst so?
Meinst so?
Re: Wie ip's im Netzwerk sammeln (script nmap)
Genau dafür wäre vielleicht auch ein Script mit ngrep eine Idee wert. Da kann man bei jedem Treffer die RegEx verändern, dass die gerade gefundene IP ausgefiltert wird. Falls du Interesse hast, sag' Bescheid, ich komme erst nach Feierabend daran.Huck Fin hat geschrieben:welche PCs bzw. Geräte mit welcher IP an meinem Server
uniq?Huck Fin hat geschrieben:Wie kann ich das bewerkstelligen, dass keine Einträge doppelt in meiner Zieldatei existieren ?
Gruß Cae
Zuletzt geändert von Cae am 24.10.2011 12:45:28, insgesamt 1-mal geändert.
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Wie ip's im Netzwerk sammeln (script nmap)
Hört sich gut an.
Bin für jeden Tip dankbar.
Ich glaube uniq ist das Schlüsselwort.
Nun ist erstmal die Frage
Wenn ich
nmap -sP 192.168.22.0-256 >> /root/tempip.txt
mache, wie bekomme ich die Daten uniq in /root/ipusage.txt
Und wie bekomme ich die erste Zeile da raus
Bin für jeden Tip dankbar.
Ich glaube uniq ist das Schlüsselwort.
Nun ist erstmal die Frage
Wenn ich
nmap -sP 192.168.22.0-256 >> /root/tempip.txt
mache, wie bekomme ich die Daten uniq in /root/ipusage.txt
Und wie bekomme ich die erste Zeile da raus
Code: Alles auswählen
Starting Nmap 4.62 ( http://nmap.org ) at 2011-10-24 13:03 CEST
Re: Wie ip's im Netzwerk sammeln (script nmap)
Normal müsste das hier gehen, aber geht net
Alles verdoppelt sich.
Code: Alles auswählen
#!/bin/sh
# IPs scannen und in Datei ausgeben
nmap -sP 192.168.22.0-255 > /root/tempip1.txt
cat /root/tempip1.txt /root/ipliste.txt | uniq > /root/tempip2.txt
cp /root/tempip2.txt /root/ipliste.txt
Re: Wie ip's im Netzwerk sammeln (script nmap)
Code: Alles auswählen
#!/bin/sh
# IPs scannen und in Datei ausgeben
tmpfile=$(mktemp)
tmplist=$(mktemp)
nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | uniq >$tmplist
cp $tmplist /root/ipliste.txt
rm $tmpfile $tmplist
Gruß Cae
--Edit: siehe Wiki
--Edit: das hier tut:
Code: Alles auswählen
#!/bin/sh
# IPs scannen und in Datei ausgeben
tmpfile=$(mktemp)
tmplist=$(mktemp)
nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | awk '!a[$0] && a[$0]=1' >$tmplist
cp $tmplist /root/ipliste.txt
rm $tmpfile $tmplist
Zuletzt geändert von Cae am 24.10.2011 14:07:02, insgesamt 2-mal geändert.
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Wie ip's im Netzwerk sammeln (script nmap)
Statt "nmap" könnte vielleicht auch ein Broadcast-Ping und die ARP-Tabelle reichen je nach Anwendungsfeld.
Code: Alles auswählen
ping -b 192.168.22.255
arp -a
Re: Wie ip's im Netzwerk sammeln (script nmap)
Das Ergebnis gefällt mir schon mal.
Jetzt muss ich nur noch die Doppelten rausfiltern...
Jetzt muss ich nur noch die Doppelten rausfiltern...
Re: Wie ip's im Netzwerk sammeln (script nmap)
Nö, das listet mir nur einen Teil meiner Geräte auf.uname hat geschrieben:Statt "nmap" könnte vielleicht auch ein Broadcast-Ping und die ARP-Tabelle reichen je nach Anwendungsfeld.Code: Alles auswählen
ping -b 192.168.22.255 arp -a
Der andere Ansatz ist schon mal genial.
Re: Wie ip's im Netzwerk sammeln (script nmap)
So, hab mal oben rumeditiert. Was passiert eigentlich mit Hosts, die nicht erreichbar sind? Keine Ausgabe? Dann wär's perfekt.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Wie ip's im Netzwerk sammeln (script nmap)
So scheint es zu gehen.
Ich teste das mal ausgibig.
Ich teste das mal ausgibig.
Code: Alles auswählen
#!/bin/bash
# IPs scannen und in Datei ausgeben
tmpfile=$(mktemp)
tmplist=$(mktemp)
nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | uniq >$tmplist
cp $tmplist /root/ipliste.txt
rm $tmpfile $tmplist
sort /root/ipliste.txt | uniq > /root/ipliste2.txt
cp /root/ipliste2.txt /root/ipliste.txt
Re: Wie ip's im Netzwerk sammeln (script nmap)
Ahhh klar, uniq fasst nur benachbarte Zeilen zusammen! Also wäredie Lösung, um auch auseinaderliegende Zeilen zusammenzufassen.
Gruß Cae
Code: Alles auswählen
cat doubles.txt | sort | uniq # oder gleich
cat doubles.txt | sort -u
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Wie ip's im Netzwerk sammeln (script nmap)
So, auf meinem PC funzt das.
Nur auf einem Testrechner geht es nicht.
Die IPs findet er, aber die Namen nicht.
wenn ich nmap -sP 192.168.22.0/24 eingebe kommt
in der ipliste.txt sieht alles so aus.
Da fehlen die Namen.
smbstatus gibt aber den Maschinennamen zur IP aus.
Ist zum irre werden...
Nur auf einem Testrechner geht es nicht.
Die IPs findet er, aber die Namen nicht.
wenn ich nmap -sP 192.168.22.0/24 eingebe kommt
Code: Alles auswählen
Host 192.168.22.228 appears to be up. MAC Address: 00:27:19:C7:30:29 (Unknown)
Host 192.168.22.242 appears to be up. MAC Address: 00:11:85:F9:1A:DE (Hewlett Packard)
Code: Alles auswählen
Host: 192.168.22.228 () Status: Up
Host: 192.168.22.22 () Status: Up
smbstatus gibt aber den Maschinennamen zur IP aus.
Ist zum irre werden...
Re: Wie ip's im Netzwerk sammeln (script nmap)
"Namen" - meinst du damit echte DNS-Namen oder irgendwelche Netbios- oder sonstige Bezeichnungen? Dann ist es total klar, dass keine Namen angezeigt werden. Evtl. dafür alle Rechner, die "up" sind, an smbdingens pipen und mit dessen Output arbeiten.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Wie ip's im Netzwerk sammeln (script nmap)
Also wenn du
ausführst, sollte in
was stehen von
Was steht denn in /etc/resolv.conf? Funktioniert die Nameserverauflösung?
Code: Alles auswählen
strace -ff -o out.txt nmap -sP 192.168.22.0/24
Code: Alles auswählen
out.txt.<prozessid>
Code: Alles auswählen
open("/etc/resolv.conf", O_RDONLY) = 3
Re: Wie ip's im Netzwerk sammeln (script nmap)
Bei mir
ping google.de geht
ping fritz.box geht
resolv.conf
Wie starte ich denn den resolver neu ?
Code: Alles auswählen
open("/etc/resolv.conf", O_RDONLY) = 6
ping fritz.box geht
resolv.conf
Code: Alles auswählen
nameserver 127.0.0.1
nameserver 192.168.22.2
Re: Wie ip's im Netzwerk sammeln (script nmap)
Naja. Die Frage ist erst mal wo die Namen von den internen Systemen überhaupt stehen.
Hast du einen lokalen Nameserver, der das verwaltet bzw. kann DHCP sich die Namen zu den beiden IP-Adressen merken? Wenn nicht könntest du die Namen mal in /etc/hosts auf dem System eintragen von wo du die Überprüfung startest. Reicht wahrscheinlich.
Code: Alles auswählen
Host 192.168.22.228 appears to be up. MAC Address: 00:27:19:C7:30:29 (Unknown)
Host 192.168.22.242 appears to be up. MAC Address: 00:11:85:F9:1A:DE (Hewlett Packard)
Re: Wie ip's im Netzwerk sammeln (script nmap)
Also wenn ich die von Hand eintrage in die Hosts werden die gefunden.
Aber das wollte ich ja nicht.
Ich habe ne FritzBox auf 192.168.22.2. Die trage ich als DNS-Server auf allen PCs ein.
und es werden ja auch Drucker mit Namen gefunden.
Frage mich warum dann überall nix in den Klammern steht.
Da ist doch was faul am Server.
Nur wo suche ich da weiter ?
Aber das wollte ich ja nicht.
Ich habe ne FritzBox auf 192.168.22.2. Die trage ich als DNS-Server auf allen PCs ein.
und es werden ja auch Drucker mit Namen gefunden.
Frage mich warum dann überall nix in den Klammern steht.
Da ist doch was faul am Server.
Nur wo suche ich da weiter ?
Re: Wie ip's im Netzwerk sammeln (script nmap)
Ok was sagt denn
Code: Alles auswählen
host 192.168.22.228
nslookup 192.168.22.228
dig 192.168.22.228
dig 192.168.22.228 @192.168.22.2
Re: Wie ip's im Netzwerk sammeln (script nmap)
host 192.168.22.228
nslookup 192.168.22.228
dig 192.168.22.228
dig 192.168.22.228 @192.168.22.2
Code: Alles auswählen
Host 228.22.168.192.in-addr.arpa not found: 3(NXDOMAIN)
Code: Alles auswählen
Server: 192.168.22.2
Address: 192.168.22.2#53
** server can't find 228.22.168.192.in-addr.arpa: NXDOMAIN
Code: Alles auswählen
; <<>> DiG 9.3.4 <<>> 192.168.22.228
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34240
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;192.168.22.228. IN A
;; ANSWER SECTION:
192.168.22.228. 3600 IN A 80.156.86.78
192.168.22.228. 3600 IN A 62.157.140.133
;; Query time: 1 msec
;; SERVER: 192.168.22.2#53(192.168.22.2)
;; WHEN: Mon Oct 24 16:25:17 2011
;; MSG SIZE rcvd: 64
Code: Alles auswählen
; <<>> DiG 9.3.4 <<>> 192.168.22.228 @192.168.22.2
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 108
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;192.168.22.228. IN A
;; ANSWER SECTION:
192.168.22.228. 3600 IN A 80.156.86.78
192.168.22.228. 3600 IN A 62.157.140.133
;; Query time: 1 msec
;; SERVER: 192.168.22.2#53(192.168.22.2)
;; WHEN: Mon Oct 24 16:26:47 2011
;; MSG SIZE rcvd: 64
Re: Wie ip's im Netzwerk sammeln (script nmap)
Also...
Ich habe ein gemacht.
Danach funktioniert mein Script halbwegs.
Meine Liste ist allerdings nicht sortiert.
Nachtrag:
Es ist mir ein Rätsel.
macht mir die Liste durcheinander.
Aber jeder Eintrag ist nur einmal vorhanden.
Nehme ich statt dessen
stimmt die Reihenfolge, aber alles verdoppelt sich.
Auch bei
stimmt die Reihenfolge, aber alles verdoppelt sich.
Ich habe ein
Code: Alles auswählen
nbtscan -l 192.168.22.1-255 >> /etc/hosts
Danach funktioniert mein Script halbwegs.
Meine Liste ist allerdings nicht sortiert.
Nachtrag:
Es ist mir ein Rätsel.
Code: Alles auswählen
sort /root/ipliste.txt | uniq > /root/ipliste2.txt
Aber jeder Eintrag ist nur einmal vorhanden.
Nehme ich statt dessen
Code: Alles auswählen
cat /root/ipliste.txt | uniq > /root/ipliste2.txt
Auch bei
Code: Alles auswählen
sort -m /root/ipliste.txt | uniq > /root/ipliste2.txt
Re: Wie ip's im Netzwerk sammeln (script nmap)
So, fertig
sort -nk 2 war der passende Parameter.
sort -nk 2 war der passende Parameter.
Code: Alles auswählen
#!/bin/bash
# IPs scannen und in Datei ausgeben
tmpfile=$(mktemp)
tmplist=$(mktemp)
nmap -sP 192.168.22.0-255 -oG $tmpfile >/dev/null
cat $tmpfile /root/ipliste.txt | grep -v '^#' | uniq >$tmplist
cp $tmplist /root/ipliste.txt
rm $tmpfile $tmplist
sort -nk 2 /root/ipliste.txt | uniq > /root/ipliste2.txt
cp /root/ipliste2.txt /root/ipliste.txt