Sous quel nom d'utilisateur est loggé un visiteur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 469 fois - Téléchargée 26 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
-
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
-
Bonjour
ça marche au poil
Génial ceci me permet de simplifier considérablement un de mes programmes.

Merci
cs_mfaraday
Messages postés
145
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
4 janvier 2010
-
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
-
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
191
Date d'inscription
lundi 25 novembre 2002
Statut
Membre
Dernière intervention
22 décembre 2009
-
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

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.