HTML.it è il sito italiano del web publishing

Gprs...



scegli un altro forum
    Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
salvo.sav
Utente di HTML.it



Registrato il: Mar 2009

Provenienza:

Messaggi: 39


ICQ:

MSN:

Skype:


Gprs...
Salve a tutti,

volevo sapere se c'è un modo 'semplice' di ricevere dati inviati tramite GPRS con il PHP.

Mi spiego meglio.
Ho dell'hardware che invia ogni tot. secondi una stringa di dati ad un indirizzo IP ed una specifica porta tramite GPRS.
Quello che voglio fare è ricevere questi dati per poi metterli in un db. Il db non è un problema.

Non capisco però come ricevere questi dati, che poi è solo una stringa di dati, nulla di più.

Inserisco qui un semplice codice per verificare che la richiesta al mio IP arrivi. Lo script non ha altro che andare a scrivere dentro un file la data odierna ogni qual volta arriva una richiesta. Vorrei appunto poter scrivere anche l'oggetto della richiesta.

codice PHP:

$f 
= @fopen("dati_1.txt""a+"); // 
if ($f

$frase date("d-m-Y")." ".date("H-i-s")." ".$_GET['ID']."\n"
fputs($f,$frase);
fclose($f);  
}


Grazie mille a chiunque vorrà darmi una mano...

Segnala ad un moderatore | IP: Collegato | Permalink

salvo.sav è offline Old Post 21-06-2012 20:26
Clicca qui per vedere il profilo dell'utente salvo.sav Clicca qui per inviare all'utente salvo.sav un messaggio privato Visualizza ulteriori messaggi scritti dall'utente salvo.sav Aggiungi l'utente salvo.sav alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eiyen
Utente di HTML.it



Registrato il: Apr 2004

Provenienza:

Messaggi: 3709


ICQ :

MSN :

Skype :


bisogna vedere come l'hw formula la "richiesta"... può essere più un problema di programmazione server, che php... che tipo di chiamata è effettuata? hai forse la possibilità di configurare qualcosa sull'hw? se facesse una chiamata http allora potresti sicuramente usare direttamente uno script php per la gestione, ma bisogna vedere com'è composta... eventualmente consultando i log del server se non hai altre info

Segnala ad un moderatore | IP: Collegato | Permalink

eiyen è offline Old Post 21-06-2012 20:28
Clicca qui per vedere il profilo dell'utente eiyen Clicca qui per inviare all'utente eiyen un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eiyen Aggiungi l'utente eiyen alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
salvo.sav
Utente di HTML.it



Registrato il: Mar 2009

Provenienza:

Messaggi: 39


ICQ :

MSN :

Skype :


Intanto grazie per la risposta.

Dunque purtroppo non ho modo di lavorare sull'hw.
Per quanto riguarda il 'come' vengono inviati i dati, ti scrivo qui quello che mi da il manuale come informazioni:

GPRS messages are sent over a GSM network. Supported GSM frequencies are
850/900/1800/1900MHz.
GPRS messages are sent in a fixed 8-field textual format: “N, D, L, D1, V, T1, T2, S1”. Fields are separated by a comma which may not be used as part of any field.

Le lettere hanno poi dei riferimenti, ma nulla più che una semplice legenda.

La cosa che mi fa supporre si possano ricevere i dati direttamente dal PHP, è che a quanto parte l'hw può inviare i dati anche ad un semplice dominio del tipo www.nomedominio.it. In questo modo la richiesta finisce direttamente nella index di quel dominio.


Posto di inviare i dati ad un IP e porta specifica, non esiste al più un modo con il PHP per monitorare tutte le richieste che vengono fatte?

P.s. Nel caso in cui fosse una richiesta http, come potrei usare 'direttamente' uno script php?

Ultima modifica ad opera dell'utente salvo.sav il 21-06-2012 alle 21:21

Segnala ad un moderatore | IP: Collegato | Permalink

salvo.sav è offline Old Post 21-06-2012 21:19
Clicca qui per vedere il profilo dell'utente salvo.sav Clicca qui per inviare all'utente salvo.sav un messaggio privato Visualizza ulteriori messaggi scritti dall'utente salvo.sav Aggiungi l'utente salvo.sav alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eiyen
Utente di HTML.it



Registrato il: Apr 2004

Provenienza:

Messaggi: 3709


ICQ :

MSN :

Skype :


puoi provare con i wrappers dell'input standard: diciamo che resta da capire "dove" va la chiamata... potrai almeno configurare l'ip o l'url da chiamare? se sì metti qualcosa come www.example.com (o indirizzo ip) /tuofile.php, dove tuofile.php è quello che userai per i test, altrimenti - se non puoi specificare il percorso/file - metti un .htaccess che redirezioni tutte le chiamate verso tuofile.php, in cui poi inserisci anche un dump di $_SERVER per vedere il tipo di chiamata, anzi, io comincerei proprio così:

- imposta il server
- imposta l'hw chiamando il tuo script (se non puoi specificare il file usa .htaccess)
- nello script metti:

codice PHP:
 <?php print_r($_SERVER);exit; ?>


e basta e posta qui il risultato

Segnala ad un moderatore | IP: Collegato | Permalink

eiyen è offline Old Post 22-06-2012 08:51
Clicca qui per vedere il profilo dell'utente eiyen Clicca qui per inviare all'utente eiyen un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eiyen Aggiungi l'utente eiyen alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
salvo.sav
Utente di HTML.it



Registrato il: Mar 2009

Provenienza:

Messaggi: 39


ICQ :

MSN :

Skype :


Intanto GRAZIE!! Adesso mi sembra di intuire che la soluzione sia a portata di mano =)

Ecco il risultato del print_r

codice:
Array ( [TMP] => C:/PROGRA~2/EASYPH~1.1/tmp [PATH] => C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\php;C:\Windows\SysWOW64;C:\Program Files (x86)\QuickTime\QTSystem\;C:\PROGRA~2\EASYPH~1.1\Apache\bin;C:\PROGRA~2\EASYPH~1.1\PHP [SystemRoot] => C:\Windows [COMSPEC] => C:\Windows\system32\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC [WINDIR] => C:\Windows [SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache/2.2.21 (Win32) PHP/5.3.8 [SERVER_NAME] => 127.0.0.1 
[SERVER_ADDR] => 192.168.1.104 
[SERVER_PORT] => 80 
[REMOTE_ADDR] => 192.168.1.104 
[DOCUMENT_ROOT] => D:/www/ 
[SERVER_ADMIN] => admin@127.0.0.1 
[SCRIPT_FILENAME] => D:/www/index.php 
[REMOTE_PORT] => 59748 
[GATEWAY_INTERFACE] => CGI/1.1 
[SERVER_PROTOCOL] => HTTP/0.9 
[REQUEST_METHOD] => Test_1,2.399,0.081,0.0,324.0,25.0,30.0,0  
[QUERY_STRING] => [REQUEST_URI] => [SCRIPT_NAME] => /index.php 
[PHP_SELF] => /index.php 
[REQUEST_TIME] => 1340361113 )


La stringa in grassetto è quella che mi interessa ricevere. In teoria già adesso, grazie al tuo aiuto, potrei tirarla fuori andando con il PHP ad esaminare $_SERVER fino a trovare [REQUEST_METHOD] e prendere 'quello che viene dopo'.

Resta solo da capire (per me) da questa stringa da dove andare a vedere di che tipo di richiesta si tratta.
Confesso che è la prima volta che mi imbatto in un problema di questo tipo.

Segnala ad un moderatore | IP: Collegato | Permalink

salvo.sav è offline Old Post 22-06-2012 11:37
Clicca qui per vedere il profilo dell'utente salvo.sav Clicca qui per inviare all'utente salvo.sav un messaggio privato Visualizza ulteriori messaggi scritti dall'utente salvo.sav Aggiungi l'utente salvo.sav alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eiyen
Utente di HTML.it



Registrato il: Apr 2004

Provenienza:

Messaggi: 3709


ICQ :

MSN :

Skype :


Perfetto! Dunque:

si tratta di una "normale" richiesta HTTP con metodo customizzato... sostanzialmente devi semplicemente recuperare le info che ti servono così:

codice PHP:

$data 
$_SERVER['REQUEST_METHOD']; // <--- questo è ciò che ti serve



...detto questo potresti aggiungere dei "controlli" se il server ha accesso pubblico (questo non lo so...): se è così magari puoi controllare che la porta e l'ip di chiamata siano autorizzati, in pratica controllando:

codice PHP:

$auth_ip 
'192.168.1.104'// è un esempio basato sul tuo snippet
$auth_port '59748'// forse questa è sempre così: fai delle prove
$remote_addr $_SERVER['REMOTE_ADDR'];
$remote_port $_SERVER['REMOTE_PORT'];
$auth = (($remote_addr==$auth_ip)&&($remote_port==$auth_port));
if (
$auth) {
  
// ok
} else {
  
// non autorizzato
};

Segnala ad un moderatore | IP: Collegato | Permalink

eiyen è offline Old Post 22-06-2012 19:41
Clicca qui per vedere il profilo dell'utente eiyen Clicca qui per inviare all'utente eiyen un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eiyen Aggiungi l'utente eiyen alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
salvo.sav
Utente di HTML.it



Registrato il: Mar 2009

Provenienza:

Messaggi: 39


ICQ :

MSN :

Skype :


Funziona alla grande!!!!!

GRAZIE MILLE!! era esattamente quello che mi serviva =)

Tra l'altro, essendo un server con accesso pubblico, la tua idea del controllo calza a pennello. Mi hai persino scritto lo script per il controllo, davvero davvero grazie =)

Segnala ad un moderatore | IP: Collegato | Permalink

salvo.sav è offline Old Post 22-06-2012 21:30
Clicca qui per vedere il profilo dell'utente salvo.sav Clicca qui per inviare all'utente salvo.sav un messaggio privato Visualizza ulteriori messaggi scritti dall'utente salvo.sav Aggiungi l'utente salvo.sav alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eiyen
Utente di HTML.it



Registrato il: Apr 2004

Provenienza:

Messaggi: 3709


ICQ :

MSN :

Skype :


A buon rendere :) ...

Segnala ad un moderatore | IP: Collegato | Permalink

eiyen è offline Old Post 22-06-2012 21:38
Clicca qui per vedere il profilo dell'utente eiyen Clicca qui per inviare all'utente eiyen un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eiyen Aggiungi l'utente eiyen alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 13:24.     

    Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca