Newsgroup: it.comp.www.php
Titolo: attività di host / gethostbyname -> ip sbagliato!

Ciao a tutti.
Premetto di essere nuovo nel postare su questo gruppo, ma da dietro le
quinte è parecchio tempo che vi accingo per "improvare"
(inglesizzazione che rende l'idea) il mio php.
Al momento però ho un problema da cui non riesco ad uscire:
* ho un sito web su altervista (sito A);
* ho un webserver sulla mia macchina (Apache) (sito B);
* utilizzo 
no-ip.com
 per assegnare ad ogni connessione il mio nuovo ip
dinamico al mio dominio.
A questo punto sulla home page del sito A, voglio scrivere una funzione
che dica se al momento il mio PC è online oppure no e se lo è, stampi
anche l'IP dello stesso.
Pensavo di fare una include "SITO B/file.php", oppure una
file_exists("SITO B/file.php"), ma ho scoperto che non è possibile,
dato che nel php di altervista è disattivato allow_url_fopen.
Perciò vi chiedo: come riesco a verificare l'attività della mia
macchina?
Inoltre ho problemi anche con la seconda parte! In quanto uso
gethostbyname(SITO B), però l'IP che mi restituisce non è
assolutamente l'IP della mia macchina!
Che sia no-ip che mi confonde le cose?
Grazie in anticipo dell'attenzione e grazie di tutto l'aiuto che mi
avete dato finora.
Al3xw

 assolutamente l'IP della mia macchina!
Sei in una LAN? Quale è il tuo provider?
rob4you 

 ha scritto nel messaggio 
news:1163164832....@h48g2000cwc.googlegroups.com...


Allora, ho risolto il problema 2. Adesso gethostbyname(hostmiopc) va
bene e restituisce effettivamente l'ip della mia macchina.
Però resta il problema 1.
Io vorrei che sul mio sito di altervista si potesse vedere IL QUANDO
sono online e per far questo devo fare una selezione nel php della
pagina.
Il punto è: su cosa faccio l'eventuale if?
Io avrei voluto inserire nella pagina del sito un file_exists(URL) su
un file all'interno della root del mio webserver.
A quel punto se il pc è connesso e Apache è su, la pagina in php del
sito quando viene chiamata da qualcuno verifica l'esistenza del file e
dice che sono online.
In realtà, anche se sono effettivamente Online col computer, ma ho
Apache giù direbbe che sono offline, ma è una situazione che mi sta
bene.
Purtroppo però una file_exists con argomento un file remoto non posso
farla.
Tantomeno una include!
(Questo a causa dei limiti imposti da altervista su allow_url_fopen)
C'è un metodo alternativo?
Ho trovato una discussione simile
http://groups.google.it/group/it.comp.www.php/browse_thread/thread/d2fe2f9c5bd73c8e/2f1ddcb3aaacf7fd?lnk=st&q=file_exists+remoto&rnum=1&hl=it#2f1ddcb3aaacf7fd
ma la soluzione (uno script) proposta non funziona.
E' apprezzata ogni idea o spunto su cui andare ad informarmi!
THANKS!

 pagina.
fsockopen()
rob4you

E' vero!!!!
:-(
http://forum.altervista.org/showthread.php?t=56481&highlight=fsockopen%28%29
Cito la frase cardine del thread sopra:
"Sul server di altervista sono bloccate le connessioni esterne".
In poche parole con php o script lato server non ne esco!!
A questo punto mi butto sul javascript e lascio fare direttamente al
browser di chi visita il mio sito questo controllo, ovviamente solo una
volta che ha già scaricato il codice html sulla sua macchina (e sigh
supponendo che il suo browser supporti javascript, ma vabbé, posso
accettarlo)!
Qualche consiglio?
THANKS per il supporto!
Al3x

Ciao a tutti, sono nuovo del canale e mi presento. Piso (conosciuto
anche come Ptah). Premetto che non sono un guru...
Provo a buttare lì una soluzione...prima una domanda...con fopen hai
provato a passare l'indirizzo http? Da che ho capito sono bloccate (come
citato nella tua mail) ma forse questa no...tentare non nuoce...
Se per caso questo tipo di fopen è abilitato (magari han disabilitato le
funzioni una per una e non direttamente il allow_url_fopen :p) allora,
dal manuale di PHP
<?php
$url = '
http://www.example.com/redirecting_page.php
';
$fp = fopen($url, 'r');
$contents = stream_get_contents($fp);
?>
e da qui, col content, ci fai quello che ti pare. Però temo che non sia
abilitato  e quindi puoi provare con un "raggiro" che ho visto potrebbe
funzionare ...usi un pezzo di codice html normale (<style
type="text/css" media="all">@import
url(
http://www.sito.com/css.css)
;</style> ) che dovrebbe funzionare e
importarti il contenuto del css...il css lo prendi ovviamente dal tuo
server...e ovviamente questo css in realtà è un file php mascherato che
recupera e mostra l'ip che hai sul server no-ip.
In teoria funziona...non l'ho mai provato pubblicamente e ovviamente non
è PHP al 100%
(se l'ho sparata grossa potete fucilarmi senza problemi!!!)
Al3xw , in data 11/11/2006 02:14 :


>Piso ha scritto:


 Ci lavoro un po' e poi vi faccio sapere...
in questo caso ti dovrebbe bastare un controllo su mysql_connect
if ($link = mysql_connect('hostname:port', 'mysql_user', 
'mysql_password')) {
   $online = true;
   mysql_close($link);
} else {
   $online = false;
}

> Per la seconda soluzione
basterebbe richiamare, da un pagina html, un qualsiasi file (anche 
un'immagine, o un file js, o quello cehv uoi) risiedente sul tuo webserver 
di casa. Se non ricevi la risposta entro un tempo limite, presumibilmente il 
tuo webserver a casa è offline.
rob4you 

Ciao.
Immaginavo che ci fosse poco da fare...
Quello che intendevo con css interpretato è che il tuo server gli sputa
fuori ad esempio uno stile per un'immagine o una tabella nel quale
"imposti" l'indirizzo IP...del tipo "Lo sfondo per la classe #mioIp è
"immagine creata con GD" e ovviamente nella tua pagina su Altervista
imposti lo stile di una cella di tabella alla classe #mioIp. Se il css
arriva, quindi il tuo server è "vivo" allora lo sfondo sarà l'immagine
creata da GD, altrimenti sarà "nulla".
E' complesso lo so ma potrebbe fungere...
Comunque se come detto non ti blocca accesi a mySql allora risparmi
fatica e tentativi di debugging e fai come suggerito...tenti una
connessione e se si connette sei UP ;)
Al3xw , in data 11/11/2006 13:16 :
