php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.11.2008, 19:19  
Neuer Benutzer
 
Registriert seit: 17.11.2008
Beiträge: 4
Snake2008 befindet sich auf einem aufstrebenden Ast
Standard Anpingen mehrere Rechner im Netzwerk!Hilfe!!!

Hallo Leute,

Folgendes Problem:
Ich muß in unserer Firma ein Intranet aufbauen, auf der Startseite sollen nun alle Rechner angezeigt werden, die mommentan Online sind!
Hab da auch ein Script, daß scheinbar auch funktioniert, allerdings dauert es eine ewigkeit, bis es geladen wird!
Ich nehm mal an, ich habe die Programmierung etwas falsch gelöst, so daß jede Ping Abfrage einzeln ausgeführt wird, und deshalb die Verzögerung!!???

Es sind halt alles in allem an die 50 Rechner, deren Status angezeigt werden soll!Das ganze läuft über Xammp und apache unter Windows!
Kann mir einer helfen????steh unter Zeitdruck!Währ echt super!!

Hab leider gerade nicht das ganze Script zu Verfügung, allerdings gehts is darum, nicht alle Ping Abfragen einzel auszuführen lieg ich da richtig???

Danke schonmal!!

Gruß Snake




hier daß Script:

<?php
if (stristr(PHP_OS, 'win'))
define ('PING', 'ping -n %d -w %d %s');
else
define ('PING', 'ping -c%d -w%d %s');

function ping($host, $milliseconds = 20, $num = 1) {
$command = sprintf(PING, $num, $milliseconds, $host);
exec($command, $array);

foreach ($array as $line) {
if (preg_match('/100% *Verlust/i', $line)) {
return FALSE;
}
}
return TRUE;
}


$host1="127.0.0.1";
$hostname1="blub";


if (ping($host1))
echo "$hostname1 is Online";
else
echo "$hostname1 is Offline";


$host2="127.0.0.1";
$hostname2="bla";


if (ping($host1))
echo "$hostname2 is Online";
else
echo "$hostname2 is Offline";

und immer so weiter.....
Snake2008 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.11.2008, 19:54  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich weiß nicht, ob das schneller läuft, aber ich würde das so anpacken:

PHP-Code:
$allePC = array(
                    
'192.168.0.2',
                    
'192.168.0.3',
                    
'192.168.0.4'
               
);
foreach(
$allePC AS $ip) {
  if (
fsockopen($ip,80)) {
     echo 
$ip ' online';
  } else {
     echo 
$ip ' offline';
  }

__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?

Geändert von Wolla (17.11.2008 um 21:50 Uhr).
Wolla ist offline  
Alt 17.11.2008, 21:47  
Neuer Benutzer
 
Registriert seit: 17.11.2008
Beiträge: 4
Snake2008 befindet sich auf einem aufstrebenden Ast
Standard

hey, vielen Dank für deine Antwort!!!
Schaut gut aus, werd ich gleich mal testen DANKE!!!

Gruß Snake
Snake2008 ist offline  
Alt 17.11.2008, 23:10  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dafür muss aber auf allen Rechnern ein Webserver installiert sein und laufen - oder etwas, dass auf Port 80 Verbindungen entgegen nimmt.
David ist offline  
Alt 19.11.2008, 20:42  
Neuer Benutzer
 
Registriert seit: 17.11.2008
Beiträge: 4
Snake2008 befindet sich auf einem aufstrebenden Ast
Standard

Leute ich brauch DRINGEND eure Hilfe!!!!
Hab mich schon viel zulange mit diesem Script aufgehalten!
Bin kurz vorm Zusammenbruch

Hier nun mein neues Ping-Script, was wunderbar funktioniert ABER und daß ist der das ist der Punkt:

Es dauert ca 20Sekunden bis alle ~50Rechner angepingt wurden, und das Script fertig ist

Es ist zum verückt werden!!!! Hat Jemand eine Idee????
Bin für jede Hilfe Dankbar!!!


PHP-Code:


if (stristr(PHP_OS'win'))
                
define ('PING''ping -n %d -w %d %s');
        else
                
define ('PING''ping -c%d -w%d %s');
           
        function 
ping($host$milliseconds 20$num 1) {
                
$command sprintf(PING$num$milliseconds$host);
                
exec($command$array);
      
                foreach (
$array as $line) {
                        if (
preg_match('/100% *Verlust/i'$line)) {
                                return 
FALSE;   
                        }   
                }
                return 
TRUE;
        }
       


$superarray=array(
array(
"name erte","127.0.0.1","<b>20</b>","Geschäftsleitung:"),
array(
"Name etrerr","192.168.0.194","<b>50</b>"), 
array(
"Manuel erte","128.0.0.1","<b>54</b>"),
array(
"Bbalabla","195.2.2.1","<b>47</b>","<br>Besprechungszimmer:"),

#Hier wird das Array vorgesetzt, ziemlich lange!!!!!!! 

);


foreach (
$superarray as $mein_array)

{
pingen($mein_array);
}

function 
pingen($a)
{

echo 
"<b>$a[3]</b>";

        
           
        
        if (
ping($a[1]))

              
echo 


<table border=1 width=160  cellpadding=0 cellspacing=0 bgcolor=#32cd32>
<tr>
<td  width=80% align=left><img src=\"\"><font color=\"black\"><b>&ensp;$a[0]</td></font></b>
<td  width=20% align=right>$a[2]</td>
</tr>
</table>

"
;
  

else

echo 
"

<table border=1 width=160  cellpadding=0 cellspacing=0 bgcolor=#b22222>
<tr>
<td  width=80% align=left><img src=\"\"><font color=\"black\">&ensp;$a[0]</td></font>
<td  width=20% align=right>$a[2]</td>
</tr>
</table>

"
;

}


?>




</font>
</body>
</html> 
Snake2008 ist offline  
Alt 20.11.2008, 10:55  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Jeder ping dauert seine zeit, du führst sie alle nacheinander aus, klar dass das seine Zeit dauert, klar auch, dass das mit php so nicht viel besser geht. du brauchst entweder etwas, was schneller geht als pingen oder du musst das ganze aus php auslaggern in eine sprache in der du parrallel arbeiten kannst, z.b. ein kleines programm auf JAVA-Basis oder sonstwas, das du via exec aufrufst und dass dir einen parse-baren output zurückgibt.
Desweiteren wäre es eventuell sinnvoll die Ergebnisse zu cachen für z.b. 5 Minuten, dann wird das ganze nur alle 5 Minuten ausgeführt.

Ansonsten schau mal wie schnell unter Windows Download the Free Nmap Security Scanner for Linux/MAC/UNIX or Windows ist, das scannt mir unter Linux nen Netzwerkbereich von 192.168.178.1-255 in ~ 3 sekunden und liefert eine wie ich finde gut parsebare Ausgabe.

Code:
nmap -sP 192.168.178.1-255
Oder du baust wenn JavaScript bei euren Browsern im Firmennetzwerk kein Problem darstellt eine AJAX-Lösung daraus und auf der Seite wird für jeden Rechner dann ein Request generiert, damit laufen die dann quasi auch Parralel, allerdings weis ich nicht wie Browser + Webserver damit klarkommen, wenn da mehrere User rumklicken.
So oder so solltest du auf jeden Fall ein Caching der Ergebnisse implementieren.
robo47 ist offline  
Alt 21.11.2008, 18:13  
Neuer Benutzer
 
Registriert seit: 17.11.2008
Beiträge: 4
Snake2008 befindet sich auf einem aufstrebenden Ast
Standard

robo47 Danke für deine Antwort!!!

Folgendes:

Ich hab wirklich seeehr viele Möglichkeiten versucht, auch mit nmap etc.!
Ich bin jetzt bei Fastping hängen geblieben, ist etwas schneller als der Windows standart Ping!

Aber die Seite benötigt immernoch ca. 5Sekunden zum laden, was einfach zu viel ist!

Hab jetzt folgende Idee, nur die Umsetzung ist mir noch nicht ganz klar!!!
Deshalb benötige ich an dieser Stelle eure Hilfe!!!!!
Was haltet hier von:

PHP Script wird vom Server automatisch alle 30sekunden ausgeführt (Cronjob etc?) Das PHP Script soll, wenn es alle Rechner angepingt hat, mir eine HTML Seite generieren also alle 30Sekunden die Seite wieder überschreiben!
Nun lad ich die HTML Seite einfach in nem Iframe auf der Page, der Iframe aktualiesiert sich auch alle 30Sekunden!

Was denkt ihr? geht das so?

Gruß Snake
Snake2008 ist offline  
Alt 21.11.2008, 18:18  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

wie wärs wenn du einfach ne logfile schreibst oder die ergebnisse in einer datenbank hinterlegst? die kannst du dann auslesen im frontend. iframes gehen gar nicht... das ist steinzeitniveau
cycap ist offline  
Alt 22.11.2008, 02:16  
Neuer Benutzer
 
Registriert seit: 22.11.2008
Beiträge: 21
71470022 befindet sich auf einem aufstrebenden Ast
Standard

Sind die Rechner eigentlich alle in der selben Domäne? Ich mein "Netzwerk" kann vieles sein. Ich habe hier 2 Netzwerke, die nicht in der selben Domäne hängen.

übrigens - unter Windows dienen die UDP Ports 137-139 zur Kommunikation. Hier "unterhalten" sich die Rechner darüber, wer alles im Netzwerk vorhanden ist und wie sie heissen. ...
Infos darüber und mehr: http://www.iana.org/assignments/port-numbers

des weitern gibt es ja noch die Möglichkeit, einen Bereich Deiner Chefkiste als Laufwerk im Netzwerk zu mappen. Nun läßt du die hochfahrenden Rechner darauf zugreifen, dann weißt du schonmal wann sie online gehen.

Schreib in die Autoexec.Bat jeder Kiste sowas hier.


echo %date%#%time%#ich-bin-der-otto>>Z:\anmeldung.log

Das hängt dir dann sowas wie 22.11.2008#02:14:23#ich-bin-der-otto an das Logfile dran

Beim Runterfahren kann man auch Routinen ausführen, ich weiß nur grad nicht mehr den Befehl - da könntest du ne analoge Abmelde-Batch hinterlegen.
71470022 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem mit einem Rechner Script... Smokehead PHP Tipps 2008 22 24.10.2008 18:37
Bundestrojaner wird lokal auf dem Rechner installiert PHP Tipps 2007 0 03.08.2007 12:06
Vom lokalen Rechner auf eine "Online"-Datenbank zu tayke Datenbanken 3 03.06.2006 21:26
Datenbankergebnis in Datei auf lokalem Rechner ausgeben PHP Tipps 2006 20 18.02.2006 01:50
Login an einen bestimmten Rechner knüpfen Tentacle PHP-Fortgeschrittene 10 15.10.2005 08:37
Rechner bekommt keinen Internetzugriff Server, Hosting und Workstations 23 10.09.2005 13:33
SMS vom Handy auf den Rechner bringen PHP Tipps 2005-2 5 27.07.2005 11:57
sql datenbank von server auf eigen rechner importieren nieselfriem Datenbanken 1 26.07.2005 12:54
mySQL DB auf lokalem Rechner aktualisieren Datenbanken 3 22.06.2005 11:21
Zwei Rechner ins Netz - Router - Hub - Probleme... imported_Ben Off-Topic Diskussionen 37 13.01.2005 21:36
2 DHCP-Server auf einem Rechner? necrom0rb Off-Topic Diskussionen 1 15.12.2004 13:25
automatischer Download vom Server auf lokalen Rechner... 18inch PHP Tipps 2004 2 27.09.2004 09:45
wie PHP auf eigenen Rechner PHP Tipps 2004 11 19.09.2004 15:56
Ordner und Datein auf lokalen Rechner kopieren... 18inch PHP Tipps 2004 4 29.06.2004 16:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mehrere rechner anpingen, netzwerk anpingen, ping alle rechner im netzwerk, alle rechner im netzwerk anpingen, alle im netzwerk anpingen, alle anpingen, alles anpingen, alle geräte im netzwerk anpingen, anpingen im netzwerk, mehrere rechner pingen, netzwerkbereich pingen, alle rechner anpingen, alle rechner im netzwerk pingen, mehrere pcs anpingen, alle computer im netzwerk anpingen, rechner im netzwerk anpingen, netz anpingen, alle rechner im netz anpingen, mehrere pc anpingen, alle im netz anpingen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum