Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3274 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer le nom de session windows du client dans un réseau local

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer le nom de session windows du client dans un réseau local

n°1169733
maya19811
Posté le 04-08-2005 à 12:24:21  profilanswer
 

Bonjour;
J'ai développé une application sous php/MySQL (en intranet); Je voudrais réstreindre l'accés à qlq persones, pour cela je dois récupérer le nom de session des postes client qui demande à afficher la page (si il existe dans ma table des user, je lui donne accés) sans passer par une authentification.
J'ai trouvé un script php qui peut faire ca mais avec la version NT de windows, actuellement mon serveur est sous win2003server et les postes clients tous sous 2000pro.
 
Ou peut etre utiliser les htaccess pour réstreindre l'accés mais je sais pas comment le faire Si qlq a une idée, merci

mood
Publicité
Posté le 04-08-2005 à 12:24:21  profilanswer
 

n°1169786
maya19811
Posté le 04-08-2005 à 13:00:44  profilanswer
 

up

n°1169793
dotfx
Posté le 04-08-2005 à 13:09:55  profilanswer
 

Avec un .htaccess tu peux restreindre l'accès par IP, sans avoir à demander une authentification:
 
order deny,allow
deny from all
allow from 192.168.0.1, 192.168.0.2, 192.168.0.3
 


---------------
www.renderfarm.online
n°1169797
maya19811
Posté le 04-08-2005 à 13:16:44  profilanswer
 

Vu que les persones peuvent ouvrir leur session depuis n'importe quel poste, le htaccess ne me servira pas a grande chose

n°1169800
dotfx
Posté le 04-08-2005 à 13:22:48  profilanswer
 

mmmmmm
Où peut on télecharger l'ancien script PHP pour NT ? Peut être qu'on peut l'adapter.
Jusqu'à aujourd'hui, je ne pensais pas que l'on pouvais récupérer le nom de l'utilisateur...
net users sous cmd.exe par exemple te retourne la liste de tous les utilisateurs de la machine, mais pas celui qui est actif.
De même, aucune valeur te retourne le nom de la session par SNMP.


---------------
www.renderfarm.online
n°1169842
dotfx
Posté le 04-08-2005 à 14:10:10  profilanswer
 

J'ai trouvé un moyen de récup le nom d'utilisateur en JavaScript, et donc POSTable à une page PHP par exemple, MAIS, il requiert Internet Explorer car il utilise un object ActiveX:
 

Code :
  1. <script type="text/javascript">
  2.       <!--
  3.         var obj = new ActiveXObject('WScript.Network');
  4.         alert(obj.UserName);
  5.       -->
  6.     </script>



---------------
www.renderfarm.online
n°1169854
lebilien
Posté le 04-08-2005 à 14:19:51  profilanswer
 

utilise  
$nbtstat = "nbtstat -A ".$_SERVER['REMOTE_ADDR'];
moi c se que j'ai fais a partir de l'adresse ip du client on peut recuperer la variable username apres moi je teste dans base si l'utilisateur existe et j'ouvra sa page et ainsi il peut se connecter de n'importe ou

n°1169857
lebilien
Posté le 04-08-2005 à 14:22:05  profilanswer
 

exec ($nbtstat,$result);
          foreach ($result as $row)
          {
          if (strpos($row,"<03>" ))
          {
          $nom = strtok($row," " );
          }
          }
 
dsl voila la suite du code

n°1169858
lebilien
Posté le 04-08-2005 à 14:22:27  profilanswer
 

et sa marche sur tous les navigateurs

n°1169948
dotfx
Posté le 04-08-2005 à 15:44:24  profilanswer
 

Ce sujet m'interesse également, mais j'ai pas de colonne contenant <03>, j'en déduis que c'est un identifiant hexadecimal, ce n'est peut-être pas le même pour tous les ordinateurs et/ou utilisateur en cours.
D'ailleurs dans la liste ci-dessous n'apparaît pas mon nom d'utilisateur, mais uniquement le nom de la machine et le groupe de travail auquel il appartient.
 

Code :
  1. Table de noms NetBIOS des ordinateurs distants
  2.        Nom                Type         État
  3.     ---------------------------------------------
  4.     HOME           <00>  UNIQUE      Inscrit
  5.     HOME           <20>  UNIQUE      Inscrit
  6.     DOTFX          <00>  GROUP       Inscrit
  7.     DOTFX          <1E>  GROUP       Inscrit
  8.     DOTFX          <1D>  UNIQUE      Inscrit
  9.     ..__MSBROWSE__.<01>  GROUP       Inscrit
  10.     Adresse MAC = 00-05-1C-01-E6-70


Message édité par dotfx le 04-08-2005 à 16:23:20

---------------
www.renderfarm.online
mood
Publicité
Posté le 04-08-2005 à 15:44:24  profilanswer
 

n°1170001
dotfx
Posté le 04-08-2005 à 16:28:02  profilanswer
 

Selon la doc de Microsoft, tu as raison, <03> est l'utilisateur loggé...
 
J'ai installé puis désinstallé IPX/SPX/NetBIOS pour voir, toujours aucun <03>  :??:


Message édité par dotfx le 04-08-2005 à 16:28:45

---------------
www.renderfarm.online
n°1170003
FlorentG
Unité de Masse
Posté le 04-08-2005 à 16:28:52  profilanswer
 

La réponse a été postée y'a pas longtemps ici :o


Message édité par FlorentG le 04-08-2005 à 16:29:02

---------------
last.fmflickr
n°1170013
dotfx
Posté le 04-08-2005 à 16:43:26  profilanswer
 

FlorentG a écrit :

La réponse a été postée y'a pas longtemps ici :o


 
Plus pratique: tu pourrais coller l'adresse du post... J'ai cherché nbtstat, il y a effectivement des résultats mais ils ne résolvent pas ce problème...


---------------
www.renderfarm.online
n°1170020
FlorentG
Unité de Masse
Posté le 04-08-2005 à 16:47:16  profilanswer
 

Sans passer par nbtstat. En passant par un machin PHP tout bête. Bon, ça marche qu'avec IIS en serveur web, mais bon...


---------------
last.fmflickr
n°1170045
maya19811
Posté le 04-08-2005 à 17:10:11  profilanswer
 

effectivement tu peut récupérer le nom de session mais dés que j'ouvre ma session sur un poste (réseau local) ça marche pas et c'est le nom du pc qui apparait!!!

n°1170056
dotfx
Posté le 04-08-2005 à 17:16:11  profilanswer
 

Je viens d'essayer sur plusieurs machines, les résultats sont assez aléatoires...
Les utilisateurs sont loggés. Certaines machines sont sous XP d'autres sous 2000 Pro.
 
<03> correspond des fois au nom de la machine, d'autres fois à l'utilisateur, ou alors <03> n'apparaît pas... que ce soit pour les PC XP ou 2000...
 


---------------
www.renderfarm.online
n°1170092
maya19811
Posté le 04-08-2005 à 17:53:11  profilanswer
 


J'ai pas trés bien saisi la méthode de l'objet ActiveX. si c'est possible d'avoir plus de détail.
Merci

n°1170112
dotfx
Posté le 04-08-2005 à 18:23:19  profilanswer
 

maya19811 a écrit :

J'ai pas trés bien saisi la méthode de l'objet ActiveX. si c'est possible d'avoir plus de détail.
Merci


 
Pour l'ActiveX: obligation d'utiliser Internet Explorer  :(  
 
Pour récup le nom d'utilisateur, il faut deux étapes:
La première, on charge une page où l'on va découvrir ce nom d'utilisateur grace à l'ActiveX, puis deuxième étage on redigire à une nouvelle page avec un POST ou un GET contenant le nom d'utilisateur.
Exemple (je passe les standard (X)HTML pour simplifier l'exemple):
 

Code :
  1. <html>
  2.   <head>
  3.     <title>Obtention du nom d'utilisateur en cours...</title>
  4.     <script type="text/javascript">
  5.       <!--
  6.         function redirect() {
  7.           var obj = new ActiveXObject('WScript.Network');
  8.           var url = 'http://ton_intranet/page.php?utilisateur=' + obj.UserName;
  9.           window.location.href = url;
  10.         }
  11.         window.onload = redirect();
  12.       -->
  13.     </script>
  14.   </head>
  15.   <body>
  16.   </body>
  17. </html>


 
Ensuite, page.php contiendra un $_GET['utilisateur'] avec le nom de l'utilisateur.
La seule emmerde, c'est que l'utilisateur devra permettre dans les options de Sécurité, la demande d'execution d'ActiveX, et aura une alerte de sécurité, où il devra autoriser ou refuser l'execution de l'ActiveX.
L'ActiveX, c'est vraiment un trou de sécurité... c'est une solution à éviter si possible.


Message édité par dotfx le 04-08-2005 à 18:35:14

---------------
www.renderfarm.online
n°1171565
maya19811
Posté le 07-08-2005 à 11:29:24  profilanswer
 


Je te remercie infiniment, ça marche trés bien; vu que tous les utilisateurs du réseau utilisent IE, j'ai pas eu de pb
Merci

n°1748067
dvonipaja
Posté le 18-06-2008 à 11:30:43  profilanswer
 

maya19811 a écrit :


Je voudrais réstreindre l'accés à qlq persones, pour cela je dois récupérer le nom de session des postes client qui demande à afficher la page sans passer par une authentification.
J'ai trouvé un script php qui peut faire ca mais avec la version NT de windows


 
Je suis moi aussi intéressé par ce script sous pour NT si tu pouvais le poster ici ou me le faire parvenir par message privé je te serais très reconnaissant :)
 
D'avance merci

n°1890375
micky78
Get ripped or die tryin'
Posté le 02-06-2009 à 12:34:04  profilanswer
 

Un petit up pour la soluce de lebilien que j utilise aussi mais pour recuperer le nom de la machine

 

Seule correction à faire:

 

$nom = strtok($row,"<" );

 

A la place de strtok($row," " )

 

Car si le nom est trop long, la ligne du tableau accole le nom et <xx....

 

Donc on se retrouve avec $nom=MACHINEBIDULE<xx>

 


edit : et rajouter si on veut virer l'espace qui se crée a la fin de $nom (dans le cas ou le nom est trop court pour accoler <XX> ) :

 

$nom=str_replace(' ','',$nom);


Message édité par micky78 le 02-06-2009 à 12:44:32
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer le nom de session windows du client dans un réseau local

 

Sujets relatifs
[MySQL]Récupérer un seul enregistrement[Résolu] Récupérer valeur oui/non
VBA excel pb pour récupérer le chemin d'enregistrement et le réinjectProblème de session et objets .....
Api Windows : Cherche code complet pour GetOpenFileName(...)réseau local + mot de passe ????
[DOS] programmer un jeu réseau[SQL] Récupérer emails d'un fichier *.sql ?
une session auteur personnalisée 
Plus de sujets relatifs à : Récupérer le nom de session windows du client dans un réseau local


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR