Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    76

    nome macchina dell'utente

    qualcuno mi sa dire come faccio ad avere il nome della macchine dell'utente?

  2. #2
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    il nome della macchina, non so

    l'indirizzo così:

    $_SERVER["REMOTE_ADDR"]

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    76
    ti ringrazio per la risposta ma mi serve proprio il nome della macchina....

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    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

  5. #5
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    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.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    76
    Originariamente inviato da zialaura
    ti ringrazio per la risposta ma mi serve proprio il nome della macchina....
    ...perdonami ma non lo trovo... :master:

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    76
    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

  8. #8
    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:
    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]
    se c'è disabilitato l'accesso anonimo, ovviamente, non si potranno elencare le cartelle condivise.

    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    76
    Originariamente 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:
    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]
    se c'è disabilitato l'accesso anonimo, ovviamente, non si potranno elencare le cartelle condivise.

    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) ^^
    ti ringrazio per la risposta. cercavo una soluzione in php... se non è possibile peccato! grazie ancora

  10. #10
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.