Récupérer le nombre d'utilisateur sur un channel irc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 070 fois - Téléchargée 28 fois

Contenu du snippet

Ce code permet de récupéré le nombre d'utilisateur présent sur votre channel IRC très simplement
Ensuite pour l'inséré dans votre page web:
Il y a <script src="http://www.tonsite.com/tonrep/lescript.php"></script> utilisateur sur le Chat en ce moment.. !!

Source / Exemple :


<?php
$strServeur = "irc.rezium.net"; // serveur IRC
$intPort = 6667; // port..
$strNick = uniqid(asp); // on génère un sn aléatoire
$strChannel = "#titaxium"; // votre channel IRC

$Sock = @fsockopen($strServeur, $intPort); // ouverture socket sur le serveur IRC

fputs($Sock, "user Aspect UNIX aspect@rezium.net: robot\n"); // infos utilisateur
fputs($Sock, "nick $strNick\n"); // envoie de notre sn

fputs($Sock, "list $strChannel\n"); // on exécute la cmd LIST

while($strLigne = fgets($Sock, 1024)){ // on récupère les donné
	if(strstr($strLigne, "322")){ // on détecte si c'est la réponse à notre cmd LIST
		$strDonne = $strLigne; // si oui on la stock
		break; // et on quit la boucle
	}
}

/* on décortique le nombre d'utilisateur */
$aArray = explode(":", $strDonne);
$strDonne = $aArray[1];
$aArray1 = explode("322", $strDonne);
$strDonne = $aArray1[1];

$strDonne = str_replace($strNick, "", $strDonne);
$strDonne = str_replace($strChannel, "", $strDonne);
$strDonne = str_replace(" ", "", $strDonne);

/* et on affiche */
print "document.write(\"".$strDonne."\");";

/* on déconnecte d'IRC avec la cmd QUIT */
fputs($Sock, "QUIT\n");
/* fermeture sock */
fclose($Sock);
?>

Conclusion :


Le mieux est encore d'avoir un service tel thales sur l'ircd du réseau !! m'enfin ...

Voilà, a+

Aspect
ReZiuM.Net - La plateforme de communication, gratuite !
IRC.ReZiuM.Net

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
13 novembre 2008

bonjour
c bon le compteur tourne parfaitement par contre je cherche la solution en mettant if pour les salons car je mets en place le compteur pour chaque salon d'un serveur donc si je mets le script pour chaque salon la page va mettre 4 heures a demarrer

davance merci
Messages postés
3
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
13 novembre 2008

euh je suis desoler
je dois apprendre a lire car j'ai chercher une erreur ligne 11 dans le mauvais document lol je m'excuse d'avoir poster ceci et si un admin veux supprimer mon post pas de souci
merci
Messages postés
3
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
13 novembre 2008

bonjour

jai repris le code et ajouter ce que vince a ajouter car rien ne fonctionner.

voici mon code:
<?php
$strServeur = "irc.liberty-chat.org"; // serveur IRC
$intPort = 6667; // port..
$strNick = uniqid(asp); // on génère un sn aléatoire
$strChannel = "#liberty-chat"; // votre channel IRC
$Sock = @fsockopen($strServeur, $intPort); // ouverture socket sur le serveur IRC
fputs($Sock, "user Aspect UNIX aspect@rezium.net: robot\n"); // infos utilisateur
fputs($Sock, "nick $strNick\n"); // envoie de notre sn
fputs($Sock, "list $strChannel\n"); // on exécute la cmd LIST
while($strLigne = fgets($Sock, 1024)){ // on récupère les donné
$a = explode(" ", $strLigne);
if ($a[0] == "PING") {
fputs($Sock, "PONG $a[1]");
fputs($Sock, "LIST ".$strChannel."\r\n"); // on exécute la cmd LIST
}
if(strstr($strLigne, "322")){ // on détecte si c'est la réponse à notre cmd LIST
$strDonne = $strLigne; // si oui on la stock
break; // et on quit la boucle
}
}
/* on décortique le nombre d'utilisateur */
$aArray = explode(":", $strDonne);
$strDonne = $aArray[1];
$aArray1 = explode("322", $strDonne);
$strDonne = $aArray1[1];
$strDonne = str_replace($strNick, "", $strDonne);
$strDonne = str_replace($strChannel, "", $strDonne);
$strDonne = str_replace(" ", "", $strDonne);
/* et on affiche */
print "document.write("".$strDonne."");";
/* on déconnecte d'IRC avec la cmd QUIT */
fputs($Sock, "QUIT\n");
/* fermeture sock */
fclose($Sock);
?>

sur ma page d'affichage
jai ceci en code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>

</head>


ici on voit le nombre d'user
<? <script src="compteur2.php"></scrip> ?>

</html>


et voila a laffichage ce qu'il me donne
Parse error: parse error, unexpected '<' in /home/julesweb/domains/liberty-chat_org/www/affichecompteur.php on line 11

donc ben si vous avez une idee je suis preneur
davance merci
Messages postés
2075
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
16 mars 2020
2
Personnellement j'ai une petite erreur, elle ne plante pas le code mais j'aimerais corriger ca :

Undefined variable: asp in chat.php sur la ligne : $strNick = uniqid($asp); // on génère un sn aléatoire

Comment faire ?
Messages postés
33
Date d'inscription
dimanche 15 mai 2005
Statut
Membre
Dernière intervention
14 janvier 2016
2
En faite j'ai trouvé tout seul comme un grand, il suffisait que j'ajouté c'est 3 lignes dans la la boucle While et déplacer la ligne => fputs($Sock, "list $strChannel\n"); // on exécute la cmd LIST <=

comme ceci :

while($strLigne = fgets($Sock, 1024)){ // on récupère les donné
$a = explode(" ", $strLigne);
if ($a[0] == "PING") {
fputs($Sock, "PONG $a[1]");
fputs($Sock, "LIST ".$strChannel."\r\n"); // on exécute la cmd LIST
}
if(strstr($strLigne, "322")){ // on détecte si c'est la réponse à notre cmd LIST
$strDonne = $strLigne; // si oui on la stock
break; // et on quit la boucle
}
}

Après ça roule nickel ^^ enfin il y a que sur moi que ça tombe les bugs en ce moment je sais pas ce qu'il se passe mais bon...

Si ça intéresse personne, ou si quelqu'un voudrait voir la source, je suis entrain de me faire un script PHP, SQL basé sur le Chat JAVA PJIRC, je pense que vous connaissez ... En faite, j'ai fait une Gestion de Membres, Administrations et tout une petite panoplie pour personnalisé le chat, commande perso, smileys etc (presque un concurent direct a mIRC lol)... si quelqu'un serait curieux de voir ce que c'est et en même si possible me donné des p'tits tuyaux pour optimiser la chose, j'en serais très content ^^

si non, pas mal la source, ça me permettra de faire des p'tits trucs supplémentaire sur mon script ^^
Afficher les 28 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.