Sous quel nom d'utilisateur est loggé un visiteur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 704 fois - Téléchargée 28 fois

Contenu du snippet

cette source me permet de savoir qui vient sur mon site à l'université. c'est la methode la plus fiable que j'ai trouvé, (bien + fiable que le smbstatus).

Source / Exemple :


<?
/* CETTE SOURCE NE MARCHE QUE SUR UN SERVEUR UNIX

  • ( comme 67 % des serveurs Web )
  • ET UN CLIENT WINDOWS DIRECTEMENT CONNECTE AU SITE.
*
  • si malheureusement le serveur est sous windows il existe une commande.
  • si vous la voulais je pe la recherché
  • ceci marche tres bien sur un réseaux local
*
  • /
// on recupere l'Ip du visiteur $ip = $REMOTE_ADDR ; // on execute une commande netbios qui // interroge la machine pour recuperer le login // Looking up status of 102.210.49.181 // nomDeMachine <00> - M <ACTIVE> // Groupe/Domaine <00> - <GROUP> M <ACTIVE> // nomDeMachine <03> - M <ACTIVE> // nomDeMachine <20> - M <ACTIVE> // nomDeMachine$ <03> - M <ACTIVE> // Groupe/Domaine <1e> - <GROUP> M <ACTIVE> // LOGIN <03> - M <ACTIVE> // on doit faire une recherche sur les <03> // ensuite il peut y avoir des $ qui de balade ==> on les vire !! $sortie = exec("nmblookup -S -A $ip | grep \"<03>\" | grep -v '\\$' " , $retour, $i); // au final il reste 0, 1 ou 2 lignes if (count($retour)==0) // si 0 ==> machine éteinte ( peu probable ) echo "eteinte.<br>\n"; else if (count($retour)==1) // si 1 ==> machine pas sous WINDOWS ou derriere un proxy echo "allumé mais pas loggé.<br>\n"; else { // dans le cas ou tout ce passe bien ereg("(.+)<03>.*",$sortie, $tmp); $sortie = trim( $tmp[1] ); echo "$sortie<br>\n"; } ?>

Conclusion :


CETTE SOURCE NE MARCHE QUE SUR UN SERVEUR UNIX
( comme 67 % des serveurs Web )
ET UN CLIENT WINDOWS DIRECTEMENT CONNECTE AU SITE.

si malheureusement le serveur est sous windows il existe une commande.
si vous la voulais je pe la recherché
ceci marche tres bien sur un réseaux local

A voir également

Ajouter un commentaire Commentaires
sddsilyon Messages postés 3 Date d'inscription jeudi 4 août 2005 Statut Membre Dernière intervention 28 mai 2009
24 avril 2006 à 16:54
J'avais cette fonction sous le coude...

function NT_user($ip) {

if(PHP_OS 'Linux' OR PHP_SHLIB_SUFFIX 'so'){
// Avec PHP sous Linux, et Samba
$netbios = "nmblookup -A ".$ip;
}else{
// Avec PHP sous Windows
$netbios = "nbtstat -A ".$ip;
}


exec ($netbios,$result);

foreach ($result as $ligne)
{
if (strpos($ligne,"<03>")){
$nom = strtok($ligne," ");
$user[] = $nom;
}
}

$user_NT = @array_pop($user);

echo strtolower($user_NT);
}

C'est ni mieux, ni moins bien, mais juste une autre méthode...@+
heimphil Messages postés 1 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 27 février 2005
27 févr. 2005 à 11:39
Bonjour
ça marche au poil
Génial ceci me permet de simplifier considérablement un de mes programmes.

Merci
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
4 mars 2004 à 16:45
Salut,

A priori "nbstat -a" ne renvoie pas le nom de l'utilisateur connecté si la mchine est sous windows xp... cela ne renvoie que le nom de machine...

::Max::
cs_trans Messages postés 1 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 3 février 2004
3 févr. 2004 à 08:25
Sous Windows la commande nbtstat parait assez hazardeuse. Elle ne retourne quelques fois que le nom de machine. Je ne sais pas ce qu'il en ai sous Unix.
ronanry Messages postés 190 Date d'inscription lundi 25 novembre 2002 Statut Membre Dernière intervention 22 décembre 2009
29 janv. 2004 à 23:44
petite precision en ce qui concerne ce code .....
exec ne fonctionne QUE SI php a ete compile sans la fonction --autosave (ou un nom du genre je me souviens plus tres bien ;-p )
tout autant que ` (l'anti-quote : altgr+touche 7)
sinon TRES TRES bien pensé le fait de faire ceci
bravo 10/10
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.