HTML/PHP/AJAX/JS - Mod który pokazuje czy serwer jest OnLine czy OffLine
Axer - 27-01-2008, 22:15 Temat postu: Mod który pokazuje czy serwer jest OnLine czy OffLine Witam. Chciałbym się spytać czy jest taki modzik, który pokazuje czy serwer jest On czy OFF? stawiam właśnie serwer CS'a i chciałbym jakby dodać do BBCode np. [ip]111.11.11.11[/ip][port]80[/port] lub coś w tym stylu i żeby zamiast tego pokazywało mi ONLINE lub OFFLINE
jest takie coś? szukałem tutaj i nie znalazłem
Renger - 27-01-2008, 22:47
Kod: | <?php
$ip="127.0.0.1"; //adres ip serwera
$port="80"; //port serwera
$socket=@fsockopen($ip,$port,$err,$err2,2);
if($socket == true)
{
echo "<b><font color=\"#00FF00\">Online</font></b>";
}elseif($socket == false) {
echo "<b><font color=\"#FF0000\">Offline</font></b>";
}else {
echo "Błąd połączenia";
}
?> |
Tu masz przykład jak zdobyć status, ale jak to do bbcode dodać to nie powiem. Nie chce bardzo kombinować z bbcode bo nie znam na tyle dobrze php żeby było to bezpiecznie dodane do skryptu forum.
Axer - 27-01-2008, 22:53
no oki a gdzie to dodać? i może ktoś inny mi powie, jak zrobić tak, żeby działało?:(
z drugiej strony coś chyba źle zrobiłeś, bo jak stworzyłem plik .php i tam wpisuje byle co np ip 111.11.11.11 port w ogole jakiś dziwny 2132341 to pokazuje online... i co tylko tam nie wpisze, to zawsze jest online..
chelloPL - 27-01-2008, 23:40
Renger, pomijając kilka błędów jakie masz w tym krótkim kodzie, to powiedz mi chociaż kiedy zostanie wyświetlony napis "Błąd połączenia"?
Axer, użycie kodu w identycznej postaci jak został podany "zabije" serwer (wykona DoS przy większej ilości odwiedzających). O ile przez przypadek kod zadziała
Axer - 28-01-2008, 15:13
chelloPL napisał/a: | Renger, pomijając kilka błędów jakie masz w tym krótkim kodzie, to powiedz mi chociaż kiedy zostanie wyświetlony napis "Błąd połączenia"?
Axer, użycie kodu w identycznej postaci jak został podany "zabije" serwer (wykona DoS przy większej ilości odwiedzających). O ile przez przypadek kod zadziała |
acha czyli nie polecasz mi tego?:) oki jakoś sobie dam rade
chelloPL - 28-01-2008, 17:34
Axer, nie polecam z kilku powodów:
- sprawdzanie co kilka sekund (a czasami nawet kilka razy na sekundę) czy serwer jest włączony - nie jest dobrym pomysłem,
- stan powinien być weryfikowany okresowo: raz na jakiś czas - np. 1 raz na 5 (lub 10) minut,
- połączenia nawiązywane, powinny być szybko zamykane, aby nie obciążać zasobów serwerów (źródłowego i docelowego) poprzez trzymanie niezamkniętych połączeń i blokowanie tym samym połączeń od klientów (w efekcie mogłoby się okazać, że serwer zajmuje się tylko sprawdzaniem stanu, a nie ma czasu na obsłużenie klientów),
O czymś jeszcze myślałem, ale wyleciało mi z głowy jak zacząłem to pisać.
Reasumując, wyświetlanie stanu serwerów w bbcode możesz jak najbardziej zrobić. Ale jego sprawdzanie i zapisywanie ostatniego stanu powinno być zrobione poza skryptem php.
Nie wiem jakiego typu masz dostęp do serwera. Jednak jeśli masz możliwość użycia crona, to skorzystaj z niego. Jeśli masz uprawnienia roota na serwerze, wówczas zainteresuj się poleceniami fping (nie ma możliwości analizy portu docelowego) lub lft.
PS: samo połączenie się z portem docelowym wcale nie oznacza, że usługa pracująca na zdalnym komputerze działa prawidłowo.
Axer - 28-01-2008, 21:35
oki a wiesz może, jak zrobić takie coś w bbcode?
chelloPL - 28-01-2008, 23:25
Do samego wyświetlania?
Proszę bardzo - jeśli chcesz mieć ładną ikonkę, to np:
Kod: | [img]http://adres/status/nazwa_badanego_serwera.png[/img] |
I żadnego bbcode nie trzeba.
Tylko potrzebny jest skrypt w cronie, który będzie sprawdzał czy serwer odpowiada. Jeśli tak, wówczas kopiuje plik /status/ok.png na /status/nazwa_badanego_serwera.png.
Jeśli nie odpowiada, wówczas kopiuje /status/bad.png na /status/nazwa_badanego_serwera.png.
Ale jak już pisałem - dowcip nie polega na umieszczeniu tego w ładnej postaci na forum (bo to jest banalnie proste), lecz w skrypcie cronowskim.
|
|
|