Skocz do zawartości
  • Cześć!

    Witaj na forum RootNode - aby pisać u nas musisz się zarejestrować, a następnie zalogować. Posty pisane z kont niezarejestrowanych nie są widoczne publicznie.

Rekomendowane odpowiedzi

Opublikowano

Hej,

Chce zrobić ping po php na konkretny port

No i robię tak jak poniżej.

Cały czas mi pokazuje, że działa nawet jak wyłączę usługę na tym porcie.

Dlaczego? Bo nie mam już pomysłu.

 

<?php
$fp = @fsockopen( 'udp://127.0.0.110', 12871, $errno, $errstr, 30 );
if ( !$fp )
{
  echo 'Blee';
}
else
{
  echo 'DZIAŁA :)';
}
?>

 

Opublikowano (edytowane)

Pokaż, z tej maszyny gdzie wyłączasz tą usługę, wynik poleceń

ss -unpl
ip a s lo

wykonane z uprawnieniami root'a

Edytowane przez mariaczi
Opublikowano

 ss -unpl
State       Recv-Q Send-Q                                                                         Local Address:Port                                                                                        Peer Address:Port
UNCONN      0      0                                                                                          *:44044                                                                                                  *:*
UNCONN      0      0                                                                                          *:9987                                                                                                   *:*
UNCONN      0      0                                                                                          *:68                                                                                                     *:*
UNCONN      0      0                                                                               127.0.0.110:123                                                                                                    *:*
UNCONN      0      0                                                                                  127.0.0.1:123                                                                                                    *:*
UNCONN      0      0                                                                                          *:123                                                                                                    *:*
UNCONN      0      0                                                                                         :::46410                                                                                                 :::*
UNCONN      0      0                                                                                         :::9987                                                                                                  :::*
UNCONN      0      0                                                             fe80::f816:3eff:fefb:e954%ens3:123                                                                                                   :::*
UNCONN      0      0                                                                                        ::1:123                                                                                                   :::*
UNCONN      0      0                                                                                         :::123                                                                                                   :::*

 

ip a s lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
 

Opublikowano
9 minut temu, mariaczi napisał:

Prawda, usługi nasłuchującej na tym porcie brak. Wyłącz tłumienie błędów i sprawdź co siedzi w $fp.

 

Jak to zrobić?

Opublikowano

Usuń znak "@" sprzed fsockopen i zobacz czy nie wyświetla czegoś przy wykonywaniu skryptu. Upewnij się, że masz włączone w php.ini wyświetlanie błędów.

Opublikowano
4 minuty temu, mariaczi napisał:

Usuń znak "@" sprzed fsockopen i zobacz czy nie wyświetla czegoś przy wykonywaniu skryptu. Upewnij się, że masz włączone w php.ini wyświetlanie błędów.

 

Tak mam włączone display_errors na on

Po usunięciu @ nic więcej się nie pokazało.

Opublikowano
1 godzinę temu, l3szcz napisał:

Daj jeszcze error_reporting(E_ALL) 

 

Efekt nijaki.

zmieniłem na tcp

usluga dziala a on sypie error
Warning: fsockopen(): unable to connect to tcp://127.0.0.110:12871 (Connection refused) in /var/www/html/s1.php on line 177
Blee

 

generalnie jest to serwer gry... i on nie działa raczej na protokole tcp oraz udp... dlatego raczej nie wyjdzie to co chciałem zrobić.

Opublikowano
W dniu 10.07.2018 o 16:13, otlet napisał:

A jaki serwer gry? Może coś pomogę :P

 

Hurtworld

Obecnie użyłem obrazka z gametrackera na ikonę online / offline..., ale to takie trochę lipne... rozwiązanie.

Opublikowano
11 minut temu, Damianoo napisał:

 

Hurtworld

Obecnie użyłem obrazka z gametrackera na ikonę online / offline..., ale to takie trochę lipne... rozwiązanie.

Nie wiem, czy to zadziała, musiałbym sobie postawić serwer do Hurtworld i przetestować, ale sprawdź jak np.: https://github.com/avignat/Check-Server-Status sprawdza status serwera:

<?php
    function getStatus($ip, $port) {
        $socket = @fsockopen($ip, $port, $errorNo, $errorStr, 2);
        if (!$socket) return false;
        else return true;
    }

Moim zdaniem powinno wszystko łapać, ale może masz coś na FW, albo HW nie odpowiada, tylko trzeba np.: przez jakiś rcon sprawdzać status? Jak nie zapomnę, odpalę u siebie HW i napiszę coś na ten wzór. Dodatkowo jak to stawiasz na tej samej maszynie, możesz weryfikować, czy coś na porcie po prostu stoi i czy proces HW jest odpalony.

Opublikowano
6 godzin temu, otlet napisał:

Nie wiem, czy to zadziała, musiałbym sobie postawić serwer do Hurtworld i przetestować, ale sprawdź jak np.: https://github.com/avignat/Check-Server-Status sprawdza status serwera:


<?php
    function getStatus($ip, $port) {
        $socket = @fsockopen($ip, $port, $errorNo, $errorStr, 2);
        if (!$socket) return false;
        else return true;
    }

Moim zdaniem powinno wszystko łapać, ale może masz coś na FW, albo HW nie odpowiada, tylko trzeba np.: przez jakiś rcon sprawdzać status? Jak nie zapomnę, odpalę u siebie HW i napiszę coś na ten wzór. Dodatkowo jak to stawiasz na tej samej maszynie, możesz weryfikować, czy coś na porcie po prostu stoi i czy proces HW jest odpalony.

Sprawdzę i dam znać, ale robiłem podobne kombinacje i też była lipa.

Serwer HW działa i nic innego na ten port się nie bija jak zgaszę HW to portu nic nie używa.

 

4 godziny temu, MateuszCODE napisał:

W C# możesz zrobić socket JSON z danymi uptime itp i za pomocą tego odczytasz w PHP

Nie znam C#

4 godziny temu, Poziomecki napisał:

gameq tego nie obsługuje?

O widzisz :) Sprawdzę i dam znać.

  • 1 miesiąc temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.