Installez vos compteurs Web vintage !


wwwcount 2.2 - Compteur d'accès Web (webcounter) CGI en C pour serveur Web sous UNIX/Linux

[Téléchargement] [Guide d'installation] [Exemples d'utilisation]



[New] Vous ne pouvez pas installer le programme sur votre serveur ? [New]

TheRaphit vous propose de créer vos propres compteurs - c'est rapide, gratuit, et illimité !

[Flag GB] Create your own free counters - fast, free, unlimited!




Vous avez atteint la page du TheRaphit's Web Site dédiée aux webcounters, reliques des sites personnels du 20ème siècle.

Vous découvrirez ici des pièces de musée d'Internet mais pas que, puisque je vous propose ici en téléchargement le programme que j'utilisais en 1997, ainsi qu'un guide de configuration pour pouvoir l'installer sur votre serveur, et afficher ainsi vos propres compteurs vintage sur votre site !

Un webcounter, c'est quoi ?



A la grande époque du Web personnel, presque tous les sites tenus par des particuliers étaient hébergés par divers prestataires (fournisseur d'accès ou hébergeurs communautaires) en mutualisé, c'est à dire que tous les utilisateurs d'un hébergeur donné se partageaient le même serveur.

Seul l'opérateur du serveur avait donc accès à ses logs, pour autant que des journaux d'accès ne fussent tenus... En conséquence les propriétaires des sites hébergés n'avaient pas de moyen de connaître quelle était la popularité de leur site, et surtout quelle était la popularité des différentes pages de leur site.

C'est là que le webcounter entre en scène : il consiste en un petit insert dans le code HTML de la page, qui appelle un programme générant à la volée un bloc de texte ou une image qui indique le nombre de fois que le dit programme a été appelé. Suivant les types de compteurs il était possible de passer des paramètres, afin de disposer de plusieurs comptages différents au sein du même site.

Comme l'indique la page Wikipedia qui leur est dédiée, ceux-ci sont progressivement tombés en désuétude en même temps que l'hébergement mutualisé, et avec l'amélioration des outils d'analyse d'accès aux serveurs Web. Ils ont ensuite presque complètement disparu lorsque le Web s'est professionnalisé et la fin des sites personnels.

Vraiment disparus... Ou pas ?



Après plusieurs jours de recherches acharnées, en suivant un véritable jeu de piste, j'ai pu retrouver l'un de ces programmes, en l'occurence exactement celui que j'utilisais à l'époque : wwwcount 2.2. Très sûrement le meilleur programme de compteurs existant à ce moment-là, en comparaison le leader du moment (digits.com) c'était too poori. Ce n'est donc pas de la merde que je vous propose ici, sachez le.

Bref, j'ai reconstitué une archive du code source du programme, que je peux désormais vous mettre à disposition.


La somme MD5 de cette archive est : c2974056a66ae0619c03800e9a862e42. Celle-ci doit être identique à celle d'une autre copie de cette archive, qui est disponible directement sur mon site, via cette section sur la page concernant la restauration. C'est hébergé sur une autre machine.

Allez, je vous embarque pour un peu de counter-fun !

Installation du programme



Le programme est destiné à être installé sur un serveur sous UNIX. Il y a cependant un petit écart de 30 ans (une broutille) entre les systèmes pour lesquels il a été conçu et les OS modernes. Vous pourriez donc rencontrer quelques difficultés.

Le programme compile cependant sans problèmes sur une distribution récente de Linux x86_64 (noyau 6.x). Je sais qu'il ne compile pas sous FreeBSD malheureusement. Cependant le programme n'est constitué que d'un exécutable unique, donc après l'avoir compilé sur une machine Linux quelconque, il fonctionnera très certainement sur votre serveur si celui-ci est sous un système UNIX disposant d'une émulation Linux. C'est notamment le cas de FreeBSD et de certaines versions de Solaris.

Après décompression de l'archive, le répertoire du programme doit ressembler à ceci :


Vous devez notamment vérifier que les scripts sont bien exécutables

Voyons maintenant les différentes étapes d'installation :
  • Exécuter ./Count-config : ceci va lancer un script interactif vous demandant quelques informations sur votre système, et notamment où se situe le répertoire cgi-bin de votre serveur. Les répertoires d'installation du programme lui-même (sous /usr/local) sont assez logiques, mais vous voudrez peut-être tout mettre sur une partition dédiée, comme un /opt. En effet le répertoire data contenant les valeurs des compteurs sera par défaut /usr/local/etc/Counter/data si vous ne changez rien. Cela pourrait ne pas vous convenir.

    Il y a quelques options de configuration importantes que vous allez définir également à cette étape : notamment si vous souhaitez autoriser le programme à créer de nouveaux compteurs automatiquement, ou si vous souhaitez protéger l'accès au compteur via la variable HTTP_REFERER. Cette dernière option est indiquée comme étant expérimentale par l'auteur, car à l'époque il y avait de vieux navigateurs qui n'implémentaient pas le support des referrers. Ce n'est bien sûr plus du tout le cas aujourd'hui. Quoi ? Comment ? Qu'entends-je ? Qu'ouïs-je ?? Un truc qui fonctionne mieux au 21ème siècle qu'au 20ème ?! Eh oui, ça arrive.

  • Exécuter ./configure : étape classique de toute compilation, le script va vérifier que tous les outils nécessaires (notamment le compilateur) sont bien présents sur votre système. Sur une distribution Debian GNU/Linux, vous devez avoir installé le package build-essential afin de pouvoir passer cette phase.

  • Lancer la compilation avec make : celle-ci doit se dérouler sans erreurs. S'il y en a une, le programme make vous l'indiquera très clairement.

  • Exécuter ./Gen-conf : un autre script interactif qui vous assiste dans la rédaction du fichier de configuration du programme, à savoir count.conf. Cela va vous permettre de définir les noms DNS de votre serveur, comprenant en particulier ceux correspondant aux sites sur lesquels vous vouler insérer les compteurs. Ceci afin de constituer, entre autres, une liste d'autorisation d'appel au programme.

  • Installer le programme avec ./Count-install. Pour cela vous devez d'abord passer root sur votre serveur, ou utiliser sudo. Une fois ceci fait, vous devriez trouver le fichier binaire Count.cgi dans votre répertoire cgi-bin avec les bons droits UNIX (0755).
Avant de passer au vif du sujet, je vous recommande de vérifier que tout est en ordre au niveau du fichier count.conf mais aussi de la configuration de votre serveur.

Quelques notes à propos de la configuration



Le fichier de configuration, count.conf, présente trois sections différentes délimitées par { }. Les dernières lignes du fichier devraient ressembler à ce qui suit :
#
{
workstation.domaine.tld
192.0.2.69
}
# Auth block
{
serveur.domaine.tld
mymegawebsite.tld
}
# all possible names and IP address of your host can be referred.
{
serveur.domaine.tld
serveur
192.0.2.42
v4only.domaine.tld
v4only
}
#
La première section indique quels sont les hôtes pour lesquels vous souhaitez ignorer les hits : si le programme est appelé depuis ces adresses, il n'incrémentera pas les compteurs stockés sur le serveur.

La deuxième section indique quels sont les sites qui peuvent faire appel aux compteurs, le programme vérifiant cela grâce au HTTP_REFERER. Indiquez donc ici, en plus du nom de votre serveur, tous les noms de domaine correspondant aux sites sur lesquels vous voulez utiliser un compteur.

La troisième section indique enfin les différents noms correspondant au serveur sur lequel est intallé le programme.

Note HTTPS. Vous pouvez interroger le programme indifféremment en HTTP ou HTTPS, il n'y a rien à préciser dans sa configuration pour cela. Toutefois, gardez à l'esprit qu'appeler du contenu HTTP depuis une page HTTPS provoque la perte du HTTP_REFERER. Egalement, les navigateurs pourraient décider de ne pas charger du contenu considéré comme « non sécurisé » depuis une page HTTPS, et donc ne pas du tout afficher les compteurs.

Note IPv6 ! Le programme n'a pas été conçu pour fonctionner en IPv6. Il est donc possible que les noms DNS indiqués dans le fichier count.conf ne soient pas traités s'ils ont un enregistrement DNS AAAA, voire même que cela perturbe le fonctionnement global du programme. Aussi je vous recommande d'appeler le programme en IPv4 uniquement, via une URL correspondant à un nom DNS ne disposant que d'un enregistrement de type A. D'où le v4only.domaine.tld que je fais figurer dans mon exemple. Cela permettra également de vous assurer que les hits seront bien ignorés depuis votre poste de travail (première section) car votre serveur HTTP transmettra alors un REMOTE_ADDR IPv4 au programme.

Dinguerie spéciale 21ème siècle !! J'ai remarqué que certains navigateurs (mais pas tous) ignorent le tag HTML <IMG SRC="..."> servant à appeler un compteur lorsque la chaîne de caractères cgi-bin figure dans l'URL, et que des paramètres sont passés en fin d'URL (présence d'une séquence "?..."). Ce n'est pas une blague, le navigateur IGNORE purement et simplement le tag, n'affiche même pas une image manquante, et ne génère aucune connexion vers le serveur hébergeant le programme, ce que j'ai vérifié avec un tcpdump. C'est le cas de Chrome [desktop] et Firefox, mais pas de Chrome [mobile/Android] (!). Néanmoins vous pouvez blouzer ces navigateurs en créant un alias de votre répertoire cgi-bin au niveau de votre serveur HTTP, par exemple scripts ou progs, et à ce moment-là, ça fonctionne. Ce qu'il ne faut pas faire...

Cela étant dit, il est plus que temps de passer au plat de résistance.

Exemples d'utilisation, et fonctions principales



Count 2.2 est hautement personnalisable. Je vais en décrire ici les fonctions principales avec quelques exemples de rendus.

Les compteurs que je vous présente ici sont des vrais ! Vous pouvez donc recharger cette page afin de voir ce que produit l'incrémentation sur les différents styles. Ah bah oui, vous vous êtes cru sur
Mygale ou bien ? Ce n'est pas de l'hébergement de PD ici :D :D :D

Le programme génrère des images au format GIF, que vous pouvez insérer dans vos pages comme n'importe quelle image statique, le navigateur du client ne faisant pas la différence. La structure générale de l'appel au programme, en HTML, est celle-ci :
<IMG SRC="http://serveur.domaine.tld/repertoire/Count.cgi?fonction1=arg1&fonction2=arg2&...&df=my-counter.dat">
Le programme va prendre en paramètre plusieurs fonctions différentes, lesquels attendent des arguments qui leur sont spécifiques.

Voyons ensemble quelques une de ces fonctions et les arguments sur lesquels vous pouvez jouer.
  • La fonction dd (digit directory) définit le style des chiffres du compteur, les valeurs possibles de l'argument étant les lettres de A à E.
    Style A :

    Style B :

    Style C :

    Style D :

    Style E :
  • La fonction ft (frame thickness) fixe l'épaisseur du cadre du compteur. Il s'agit d'un nombre entier. Notamment, la valeur 1 permet de ne pas afficher de cadre du tout.
    Sans cadre (valeur 1) :

    Cadre fin - bordure (valeur 2) :

    Cadre épais (valeur 9) :
  • La fonction frgb (frame RGB) vous permet de choisir la couleur du cadre, en spécifiant en paramètre une couleur 24 bits via son codage RGB hexadécimal. Il n'est pas nécessaire de préfixer celui-ci d'un # ou de 0x.
    Exemple avec FFFFFF (blanc) :

    Autre exemple (ici, couleur 551A8B) :

    Couleur Paladin - F48CBA (j'étais o-bli-gé de la mettre celle-là) :
  • Les fonctions md et pad (maximum digits et padding) permettent de contrôler le nombre de chiffres que le compteur affichera. Si la valeur actuelle du compteur est inférieure à 10md, alors des zéros devant le nombre seront affichés si la valeur de pad est à T (true). La valeur F (false) désactivera ces zéros non significatifs.
    Maximum neuf chiffres, avec padding :
    Maximum six chiffres (valeur par défaut), mais sans zéros non significatifs :
    Il est intéressant de noter que md va donc définir le nombre maximum que pourra afficher le compteur, et que l'auteur du programme a limité la valeur de md à 10. J'espère donc que vous n'aviez pas prévu de faire plus de dix milliards de hits sur vos pages !

  • Voici maintenant une fonction qui s'avérer fort utile : incr (increment) permet d'appeler le compteur mais sans l'incrémenter. Cela peut notamment vous servir à afficher le même compteur sur plusieurs pages d'une même section de votre site, sans que cela ne compte un hit à chaque fois. Vous pouvez aussi suivre le compteur d'une page depuis une autre, comme dans mon exemple ci-dessous. Seule la valeur F a un intérêt, puisque la valeur T est celle par défaut, sans utiliser cette fonction.
    Ce compteur est celui qui figure sur la page concernant la reconstruction de mon site, il s'incrémentera si celle-ci est visitée, mais pas lors du rechargement de la page que vous lisez actuellement.
  • Fonction moins intéressante mais qui peut avoir son utilité, lit (literal) permet de fixer la valeur affichée par le compteur, en passant celle-ci en argument. Vous n'êtes pas limité à dix chiffres ! Mais vous ne pouvez afficher que des chiffres.
    Biiiip ! Biiiip ! Initializing counter...
    Affichage de tous les chiffres du style C (mon préféré), chacun en deux exemplaires :
  • Nous arrivons enfin à la dernière étape, et bien sûr la plus importante : la fonction df (data file) indique au programme quel compteur il doit afficher, en appelant un fichier .dat stocké sur le serveur. Il est à noter cependant que ce paramètre est facultatif. Il est par exemple inutile avec lit (voir ci-dessus) mais de manière générale, l'omettre fera afficher au programme un nombre aléatoire. Cela peut servir à des fins de test.
    Le numéro gagnant de cette semaine est le !
    Allez-y, misez des sous !! (Oui, plein)
Et voilà pour l'essentiel.

L'archive du programme contient une documentation complète (en anglais). Une page officielle est également disponible si vous souhaitez en savoir davantage. En attendant ces petits compteurs ont fasciné [Compteur] visiteurs depuis le 18 janvier 2025 !

TheRaphit's Webcounters webcounter.theraphit.com - Une rubrique du TheRaphit's Web Site, la dernière homepage du Web.

Vous pourrez y découvrir du contenu que l'on ne trouve pas sur le Web moderne du politiquement correct et des zéros sociaux !

Par exemple, quelques séries cultes disponibles en téléchargement direct sans entourloupes : Evangelion - Squid Game - Les Cités d'Or
Mais aussi une collection de fonds d'écran manga olé-olé (hentai) accessibles en un clic sans inscription, disclaimer ou vérification d'âge de mes deux.
Enfin, un certain nombre de guides UNIX/Linux sont également disponibles.