Autor | Zpráva | ||
---|---|---|---|
David1256 Profil |
Dobrý den,
mám Raspberry Pi a na něm webový server, který zpřístupňuji na internet přes https://ngrok.com/. Nicméně mám nestabilní internet, tak jsem si chtěl udělat statistiku, jak často je server přístupný a jak často není. Tzn. chci spustit každých 15 minut cron, který by zjistil, jestli adresa xxxx.ngrok.com, kde je zpřístupněný webový server, v daný okamžik vrací např. "It works!" nebo 403ku. Údaje bych ukládal do DB a vyšlo by mi z toho % přístupnosti serveru na internetu. Ovšem problém je, že ngrok neumožňuje file_get_contents, a tak nemám skriptem jak zjistit, co se v daný okamžik spuštění skriptu cronem na adrese nachází za obsah. Nenapadá vás nějaký způsob, jak file_get_contents obejít a dosáhnout výsledku? Děkuji. |
||
Dan Charousek Profil |
#2 · Zasláno: 7. 3. 2015, 20:44:04
Podívej se po CURL knihovně.
|
||
David1256 Profil |
#3 · Zasláno: 7. 3. 2015, 21:35:24
I proti CURL je Ngrok odolný.
|
||
Keeehi Profil |
David1256:
Případně mě někdo opravte. Se síťařinou si nejsem nikdy 100% jistý. Abys to otestoval, měl bys to testovat z nějakého externího zdroje. A když si na svém servru pustím script s file_get_contents s tvojí url, tak obsah dostanu. Edit: nedošlo mi, že ngork.com není adresa tvého servru. Takže by se hodilo napsat, jaká to je ať se na to můžeme podívat. |
||
weroro Profil |
David1256:
Nestačí ti danú adresu pingovať? Môžeš použiť exec v PHP exec("/bin/ping -n 3 173.255.204.192", $outcome, $status); |
||
David1256 Profil |
Keeehi:
Ano, spouštím z externího zdroje. Stačí to vyzkoušet na ngrok.com, na které nefunguje file_get_contents() stejně tak jako na všech jeho subdoménách (tunelech). weroro: Ten ping vyzkouším, to by mohlo fungovat. Jen budu muset počkat na situaci, kdy bude server ve stavu 403ky, což dělá právě můj "inteligentní" router. Když totiž tunel (ngrok) manuálně vypnu, tak si ngrok místo obsahu webserveru na Raspberry doplní html stránku, kde je napsáno, že tunel nefunguje, což mi v případě pingu vrátí stejný výsledek jako kdyby web normálně běžel a já rozdíl nepoznám. EDIT: Tak ani toto nebude fungovat, protože to naráží na stejnou chybu jako file_get_contents. Ten Ngrok je imunní úplně na všechno: Warning: fsockopen(): unable to connect to 173.255.204.192:80 (Operation not permitted) in /data/www/router.php on line 5 |
||
Davex Profil |
David1256:
Není to spíš problém místa, ze kterého se snažíš připojovat, že blokuje připojení na jiný server? Obecně by nemělo záležet na použité funkci v PHP - buď budou fungovat všechny nebo žádná (pokud nebudu uvažovat vypnuté allow_url_fopen nebo zakázané funkce).
|
||
Keeehi Profil |
#8 · Zasláno: 8. 3. 2015, 01:12:31
David1256:
Jak píše Davex, je to problém toho externího zdroje. ngork.com nic neblokuje ani se tomu nebrání (ověřeno tím, že mě to funguje) takže problém bude někde v konfiguraci toho servru na kterém se to snažíš spouštět. Stáhnout obsah třeba úvoní stránky seznamu ti jde? Co je to ten externí zdroj? |
||
David1256 Profil |
Davex, Keeehi:
Aha, zajímavé. Tak problém byl opravdu na hostingu. Spouštěl jsem z Blueboardu, kde tento kód: <?php $host = '173.255.204.192'; // Ngrok.com IP $port = 80; $waitTimeoutInSeconds = 1; if($fp = fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)){ echo "OK"; } else { echo "KO"; } fclose($fp); $homepage = file_get_contents('http://www.ngrok.com'); echo $homepage; ?> Vrátí: Warning: fsockopen(): unable to connect to 173.255.204.192:80 (Operation not permitted) in /data/www/20389/xxx/router.php on line 5 KO Warning: fclose() expects parameter 1 to be resource, boolean given in /data/www/20389/xxx/router.php on line 10 Warning: file_get_contents(http://www.ngrok.com): failed to open stream: Operation not permitted in /data/www/20389/xxx/router.php on line 12 Zatímco stejný kód na Wedosu vrátí OK a obsah homepage Ngroku. Asi dořeším s hostingem, očividně mají na Blueboardu něco "špatně". |
||
David1256 Profil |
Tak vyřešeno, Blueboard má ve firewallu zablokovaný přístup na zahraniční servery kvůli bezpečnosti, takže jsem si odblokoval v administraci ngrok.com a nyní již vše funguje jak má.
|
||
Časová prodleva: 9 let
|
0