WinFuture-Forum.de: Shellscript: Alle möglichen Hosts im netzwerk anpingen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

Shellscript: Alle möglichen Hosts im netzwerk anpingen

#1 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.500
  • Beigetreten: 28. Mai 06
  • Reputation: 177

geschrieben 23. Mai 2011 - 18:15

Hi, ich hab derzeit dieses Skript in verwendung:
#!/bin/bash
#This Script checks all available hosts on the network. 

base=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' | cut -d"." -f1,2,3)

for ((n=1; n < 254; n+=1))
do
	ip=$base.$n
	if ping -c 1 -w 1 $ip > /dev/null 2> /dev/null >> ./log.txt;
	then
		echo "${ip} is up" 
	else		
		echo "${ip} is down"
	fi
done

da er aber bei dem skript jeden host nach dem vorigen anpingt dauert das recht lange da wollte ich fragen ob wer weis wie man das schneller machen kann

Dieser Beitrag wurde von Ludacris bearbeitet: 23. Mai 2011 - 18:15

0

Anzeige

#2 Mitglied ist offline   SpaceCowboy 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 17. August 04
  • Reputation: 1

geschrieben 23. Mai 2011 - 18:25

und wieso das ganze nicht per nmap scannen?
zB
nmap -sP $base.0/<netmask>

have you tried turning it off and on again?
0

#3 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.500
  • Beigetreten: 28. Mai 06
  • Reputation: 177

geschrieben 24. Mai 2011 - 07:53

weil man dann nmap installieren müsste
0

#4 Mitglied ist offline   Nigg 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.343
  • Beigetreten: 19. Mai 04
  • Reputation: 14

geschrieben 24. Mai 2011 - 08:14

und das tut weh unter linux?
npm - nginx php mysql

Wenn dir kalt is, geh in eine Ecke, da sind meist 90°
0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.940
  • Beigetreten: 13. Dezember 04
  • Reputation: 43

geschrieben 24. Mai 2011 - 08:25

Du kannst natürlich auch einen Broadcast-IP ausprobieren.
ping -b $(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' | cut -d"." -f1,2,3).255



Deinen Quellcode kann man übrigens fast in einer Zeile schreiben. :blush:
for ip in $(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' | cut -d"." -f1,2,3).{1..254}; do ping -t 1 -w 1 -c 1 $ip > /dev/null 2> /dev/null >> log.txt; && echo "${ip} is up"; done

witi@jabber.ccc.de 0xAAE321A2

50226 - Witis Blog
0

#6 Mitglied ist offline   Astorek 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.137
  • Beigetreten: 28. Juli 07
  • Reputation: 40

geschrieben 24. Mai 2011 - 09:29

Beitrag anzeigenZitat (Ludacris: 24.05.2011, 08:53)

weil man dann nmap installieren müsste
Nmap lässt sich auch statisch bauen (gerade selbst nachgeprüft; ohne UPX etwa 6.8 MB, mit UPX etwa 2.7 MB groß), dann sollte die Binary zumindest distributionsübergreifend funktionieren. Ob sie über Architekturen hinweg (32-bit vs. 64-bit) auch funktioniert, weiß ich allerdings nicht^^. (EDIT: Laut Google-Recherche sollten zumindest 32bit-Programme auch auf 64bit laufen...)

Man kann mit dem Zusatz " &" in der Shell die Kommandos im Hintergrund verfrachten. Als Beispiel:
ping -c 1 -w 1  127.0.0.1  &


Dein Beispiel müsstest du dementsprechend umschreiben... Was spräche dagegen, das Pingen nebst Ausgabe ansich in ein zweites Shellskript zu packen und diese dann im Hintergrund aufzurufen? Wäre zumindest meine Idee...

Dieser Beitrag wurde von Astorek bearbeitet: 24. Mai 2011 - 09:55

0

#7 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.500
  • Beigetreten: 28. Mai 06
  • Reputation: 177

geschrieben 24. Mai 2011 - 16:47

wär auch keine schlechte idee :blush: fping wäre evtl auch nicht so schlecht
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0