To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

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.



Powered by phpBB modified by Przemo © 2003 phpBB Group