PHP ping ve vnitrni siti – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP ping ve vnitrni siti – PHP – Fórum – Programujte.comPHP ping ve vnitrni siti – PHP – Fórum – Programujte.com

 

Marek Stejskal
~ Anonymní uživatel
1 příspěvek
28. 9. 2007   #1
-
0
-

Zdravim, nevite nekdo jak udelat php ping ve vnitrni siti, s tim ze budu volat php na nasem serveru. Nasel sem PHP ping script



$max_count = 10; //maximum count for ping command
$unix = 1; //set this to 1 if you are on a *unix system
$windows = 0; //set this to 1 if you are on a windows system
// -------------------------
// nothing more to be done.
// -------------------------
//globals on or off ?
$register_globals = (bool) ini_get('register_gobals');
$system = ini_get('system');
$unix = (bool) $unix;
$win = (bool) $windows;
//
If ($register_globals)
{
$ip = getenv(REMOTE_ADDR);
$self = $PHP_SELF;
}
else
{
$submit = $_GET['submit'];
$count = $_GET['count'];
$host = $_GET['host'];
$ip = $_SERVER['REMOTE_ADDR'];
$self = $_SERVER['PHP_SELF'];
};
// form submitted ?
If ($submit == "Ping!")
{
// over count ?
If ($count > $max_count)
{
echo 'Maximum for count is: '.$max_count;
echo '<a href="'.$self.'">Back</a>';
}
else
{
// replace bad chars
$host= preg_replace ("/[^A-Za-z0-9.-]/","",$host);
$count= preg_replace ("/[^0-9]/","",$count);
echo '<body bgcolor="#FFFFFF" text="#000000"></body>';
echo("Ping Output:<br>");
echo '<pre>';
//check target IP or domain
if ($unix)
{
system ("ping -c$count -w$count $host");
system("killall ping");// kill all ping processes in case there are some stalled ones or use echo 'ping' to execute ping without shell
}
else
{
system("ping -n $count $host");
}
echo '</pre>';
}
}
else
{
echo '<body bgcolor="#FFFFFF" text="#000000"></body>';
echo '<p><font size="2">Your IP is: '.$ip.'</font></p>';
echo '<form methode="post" action="'.$self.'">';
echo ' Enter IP or Host <input type="text" name="host" value="'.$ip.'"></input>';
echo ' Enter Count <input type="text" name="count" size="2" value="4"></input>';
echo ' <input type="submit" name="submit" value="Ping!"></input>';
echo '</form>';
echo '<br><b>'.$system.'</b>';
echo '</body></html>';
}
?>


Ale bohuzel tento pinger nepinguje vnitrni sit, nevite nekdo jak na to ?

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
29. 9. 2007   #2
-
0
-

No, keď si aj prečítaš, čo si poslal, tak zistíš, že ten script volá nejaké šalenoty typu:

  system ("ping -c$count -w$count $host");

system("killall ping");
alebo
  system("ping -n $count $host");


Čiže nerobí to nič iné, ako zavolá systémový príkaz a jeho výsledok vráti ako html stránku. Mimochodom odporúčam sa na ten zdroják vykašlať, je napísaný zbytočne zložito a nečisto.

Rád by som pomohol, no z otázky nemám šajn, čo vlastne chceš robiť.

Zdravim, nevite nekdo jak udelat php ping ve vnitrni siti, s tim ze budu volat php na nasem serveru. Nasel sem PHP ping script


Na našem serveru je dosť široký pojem...

Predpokladám, že máš nejakú vnútornú sieť za nejakým NATom a niekde vonku server, z ktorého chceš pingovať jednotlivé hosty vo vnútri. To ale nepôjde, pretože z vonku sa pingom za nat do vnútra siete nedostaneš.

Ak by šlo o server ktorý je takisto v sieti vnútornej, tak problém neexistuje, stačí len napísať script, ktorý zavolá systémový príkaz ping a jeho výstup spracuje podľa tvojich predstáv. Tiež by bolo možné použiť čisté sockety na vyslanie echo requestu a zachytenie echo reply, aby si nemusel používať externé systémové príkazy.

[podtrzene]Poznámka:[/podtrzene] To že ti na ping nejaký host odpovie, je len na jeho dobrej vôli. Čiže ak chceš testovať dostupnosť nejakých konkrétnych služieb a nie len online/offline stavu hostu, je lepšie prejsť na tcp/ip protokol a testovať pripájaním sa na tcp porty. Nedávno som to riešil, výsledný script je na tomto fóre.
http://programujte.com/forum.php?akce=prispevek&id=6123&sekce=fsockopen---test-otvoreneho-portu

Ak sa rozhodneš volať systémový program ping, tak sa ti zíde:
http://www.php.net/manual/ref.exec.php

Ak by si sa rozhodol použiť sockety, čo bude rýchlejšie, menej zaťažovať systém, no zložitejšie na vývoj a závislé na verzii php s podporou socketov:
Všeobecne o socketoch v PHP:
http://www.php.net/manual/ref.sockets.php
Program ping v C++, ľahko môžeš prepísať do PHP:
http://www.root.cz/clanky/sokety-a-c-program-ping/

Nahlásit jako SPAM
IP: ...–
Prog.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Vnitřní třídy — založil Marek

Vnitrni trida a jeji instance — založil Sranda

Ping — založil antton

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý