Skocz do zawartości
Damianoo

[PHP] ping po php na konkretny port

Rekomendowane odpowiedzi

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 :)';
}
?>

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Napisano (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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

 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
 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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ć?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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ć.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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ć.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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ę

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×

Powiadomienie o plikach cookie

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