qualcuno mi sa dire come faccio ad avere il nome della macchine dell'utente?
qualcuno mi sa dire come faccio ad avere il nome della macchine dell'utente?
il nome della macchina, non so
l'indirizzo così:
$_SERVER["REMOTE_ADDR"]
ti ringrazio per la risposta ma mi serve proprio il nome della macchina....
ieri ha postato un tipo che aveva uno script per fare quello che chiedi, solo che funzionava solo se sul pc windows era attivo messanger, fai una ricerca...
ciao
a me funziona solo se il server è windows e nell'http.conf è impostato:
HostnameLookups On
<?
echo getenv("REMOTE_HOST");
?>
questo dovrebbe stampare il nome del client.
...perdonami ma non lo trovo... :master:Originariamente inviato da zialaura
ti ringrazio per la risposta ma mi serve proprio il nome della macchina....
ho quotato il testo sbagliato, scusate. rispondevo a gianiaz...
per quanto riguarda getenv("REMOTE_HOST"); non mi stampa nulla...
facendo altre ricerche mi è sembrato di capire che in php non si può ottenere ciò che voglio...![]()
qualcuno mi illumini! grazie
allora ... non è possibile, IN NESSUN MODO, da remoto, ottenere il nome della macchina windows.
Forse è possibile farlo se le macchine sono nella stessa rete e sul server o è presente samba con linux o si usa windows.
Nel secondo caso non saprei mentre nel primo so come fare.
Lanciando il comando
smbclient -L 192.168.0.5 -g -N
si ottiene la lista dei file condivisi
Il parametro -L deve contenere l'IP, mentre il parametro -N serve ad annullare la richiesta della password, ovvero se viene richiesta dal client viene spedita una password vuota.
L'opzione -g indica a samba di fare un output facilmente parsabile da un software che è quello che serve.
L'output è questo:
se c'è disabilitato l'accesso anonimo, ovviamente, non si potranno elencare le cartelle condivise.codice:Domain=[NOTEBOOKDANIELE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] IPC|IPC$|IPC remoto Disk|Downloads| Disk|web| Disk|Condivisa| session request to 192.168.0.5 failed (Called name not present) session request to 192 failed (Called name not present) Domain=[NOTEBOOKDANIELE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Adesso basta lanciare una bella espressione regolare per estrarre da
Domain=[NOTEBOOKDANIELE]
solo
NOTEBOOKDANIELE
e si ottiene il nome del computer remoto.
la reg exp potrebbe essere qualcosa tipo:
preg_match('/Domain=\[([^\]]+)\]/s', $outputText, $results);
ed estrarre quindi da $results[1] (o $results[0], ora non ricordo) il valore!
L'espressione regolare non l'ho provata ma dovrebbe funzionare, in caso di problemi avvisatemi che faccio 2 test.
Se siete su server linux dovete lanciare smbclient tramite sudo, quindi necessitate di avere sudo configurato per lanciare un tool di samba.
Se siete su windows non ho proprio idea di come potete fare direttamente con php
Forse usando gli oggetti COM e le WMI da php su windows potete acquisire il nome remoto, altrimenti comunque vi serve un software esterno.
Per maggiori informazioni su come fare usando C# e WMI qua http://www.csharphelp.com/archives2/archive334.html
Il nome che estraete risolvendo l'hostname può essere il nome della macchina, come l'indirizzo ip se il server windows è configurato male (ergo niente server dns centralizzato) ^^
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
ti ringrazio per la risposta. cercavo una soluzione in php... se non è possibile peccato! grazie ancoraOriginariamente inviato da daniele_dll
allora ... non è possibile, IN NESSUN MODO, da remoto, ottenere il nome della macchina windows.
Forse è possibile farlo se le macchine sono nella stessa rete e sul server o è presente samba con linux o si usa windows.
Nel secondo caso non saprei mentre nel primo so come fare.
Lanciando il comando
smbclient -L 192.168.0.5 -g -N
si ottiene la lista dei file condivisi
Il parametro -L deve contenere l'IP, mentre il parametro -N serve ad annullare la richiesta della password, ovvero se viene richiesta dal client viene spedita una password vuota.
L'opzione -g indica a samba di fare un output facilmente parsabile da un software che è quello che serve.
L'output è questo:
se c'è disabilitato l'accesso anonimo, ovviamente, non si potranno elencare le cartelle condivise.codice:Domain=[NOTEBOOKDANIELE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] IPC|IPC$|IPC remoto Disk|Downloads| Disk|web| Disk|Condivisa| session request to 192.168.0.5 failed (Called name not present) session request to 192 failed (Called name not present) Domain=[NOTEBOOKDANIELE] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Adesso basta lanciare una bella espressione regolare per estrarre da
Domain=[NOTEBOOKDANIELE]
solo
NOTEBOOKDANIELE
e si ottiene il nome del computer remoto.
la reg exp potrebbe essere qualcosa tipo:
preg_match('/Domain=\[([^\]]+)\]/s', $outputText, $results);
ed estrarre quindi da $results[1] (o $results[0], ora non ricordo) il valore!
L'espressione regolare non l'ho provata ma dovrebbe funzionare, in caso di problemi avvisatemi che faccio 2 test.
Se siete su server linux dovete lanciare smbclient tramite sudo, quindi necessitate di avere sudo configurato per lanciare un tool di samba.
Se siete su windows non ho proprio idea di come potete fare direttamente con php
Forse usando gli oggetti COM e le WMI da php su windows potete acquisire il nome remoto, altrimenti comunque vi serve un software esterno.
Per maggiori informazioni su come fare usando C# e WMI qua http://www.csharphelp.com/archives2/archive334.html
Il nome che estraete risolvendo l'hostname può essere il nome della macchina, come l'indirizzo ip se il server windows è configurato male (ergo niente server dns centralizzato) ^^
beh ... direttamente direttamente si può fare ... ma devi usare le socket ed implementare qualcosina del protocollo CIFS e comunque i client in rete devono essere 2000, xp o superiori
dai un occhio a:
http://www.ubiqx.org/cifs/
http://us5.samba.org/samba/
http://msdn.microsoft.com/library/de...tocol/cifs.asp
http://www.javvin.com/protocolCIFS.html
http://msdn.microsoft.com/library/de...portalcifs.asp
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand