Ce snippet vous permettra de whoiser un nick sur plusieurs réseaux.
Il utilise des socket pour se connecter au site
http://searchirc.com/
Source / Exemple :
;====================================================================
;Auteur: JHD, Email: jhdestevez@hotmail.com
;Site: JHDSCRIPT®, Home Page: www.jhdscript.fr.st
;Commentaire: Ce snippet sert tout simplement à faire un whois
; sur plusieurs réseaux. P
;--------------------------------------------------------------------
;Remerciements: http://searchirc.com/ car la recherche se fait en
; connectant un socket sur leur site
;Date: 8/08/03
;====================================================================
;- les divers menu (popup)
menu status,channel,menubar {
-
Multi Whois système:/initmws $$?="Entre un pseudo"
-
}
menu nicklist {
-
Multi Whois système:/initmws $$1
-
}
menu @Multi-Whois-System {
rclick
.Nouvelle recherche:/initmws $$?="Entre un pseudo"
}
;-alias mettant dans une var le pseudo puis lancement de l alias multiwn
alias initmws { set %mwnick $1- | multiwn }
;-alias ouvrant la @win et démarrant la recherche
alias multiwn {
;-ouverture de la @win
window -ak @Multi-Whois-System 200 200 450 400
writemws 4 ===============================================
writemws 4 Recherche pour le pseudo $+ %mwnick $+
writemws 4 ===============================================
;-on set une variable a 0 car on en aura besoin par la suite
set %mws.count 0
;-ouverture du socket avec une préfermeture de manière a ne pas avoir de message d' erreur sur l ouverture du socket
sockclose multiwn
sockopen multiwn 69.57.128.21 80
}
;-a l' ouverture du socket on envoie les requetes http de telle sorte à pouvoir effectuée la connection au site
on 1:sockopen:multiwn:{
sockwrite -nt $sockname GET /whois/ $+ %mwnick HTTP/1.1
sockwrite -nt $sockname HEAD http://searchirc.com/ HTTP/1.1
sockwrite -nt $sockname Accept: */*
sockwrite -nt $sockname User-Agent: Mozilla/4.0 (compatible; mIRC $version $+ )
sockwrite -nt $sockname Host: searchirc.com $+ : $+ $sock($sockname).port
sockwrite -nt $sockname Connection: Keep-Alive
sockwrite -nt $sockname $lf
}
;-alias qui permet de supprimer les balises html contenue dans les données reçues par le socket
alias -l htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x
}
;-alias servant à ajouter une ligne dans la @win
alias writemws {
if ($window(@Multi-Whois-System)) { aline $1 @Multi-Whois-System $2- }
}
;-alias servant à ajouter une ligne de -- dans la @win
alias writemws2 {
writemws 1 -------------------------------------------------------------------------------------
}
;-Traitement des données reçues - évènement on sockread
on 1:sockread:multiwn:{
;-on set le sockread dans une var
sockread %multiwn
;-si le socket reçoit un msg d' erreur on relance la demande (en effet, qqfois, le site vous demande de patienter, ce que le socket gère mal)
if (Please hold while we look up isin $htmlfree(%multiwn)) { writemws 4 Erreur de connection au site - Reboot de la recherche | .timermws 1 5 multiwn | writemws 4 Veuillez patienter quelques secondes }
if (All rights reserved isin $htmlfree(%multiwn)) { writemws 4 =============================================== | writemws 4 Fin de la recherche de $+ %mwnick $+ | writemws 4 =============================================== }
;-on incremente la var %mws.count de 1
if (/WHOIS isin %multiwn) {
inc %mws.count
}
;-analyse des infos reçues si %mws.count est supérieur ou égale à 5 ( >= à 5 car les données reçue avant le 5ieme /whois ne sont pas intéressante)
if (%mws.count >= 5) {
;- on vérifie si certains réseau sont dans le sockread - si tel est le cas on l' écrit dans la @win
if (Undernet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (Quakenet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (Efnet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (IRCnet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (Gamesnet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (Dalnet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (Webchat isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (Galaxynet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (mIRC-X isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (EnterTheGame isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
elseif (PTnet isin $htmlfree(%multiwn)) && ($chr(46) !isin $htmlfree(%multiwn)) { writemws2 | writemws 12 Réseau: $remove($htmlfree(%multiwn),/whois,%mwnick) }
;-Réception des nick + host que l' on inscris dans la @win - utilisation d' une boucle et de sockread -f car les informations sont obtenues sur plusieurs sockreads
if (nick: isin $htmlfree(%multiwn)) {
set %tmmws 0
:loop
if ( %tmmws == 1) {
writemws 10 Nick: $htmlfree(%multiwn)
}
elseif (%tmmws <= 1) { sockread -f %multiwn | inc %tmmws 1 | goto loop }
}
;-idem que pr le nick mais pr le realname
if (realname: isin $htmlfree(%multiwn)) {
set %tmmws 0
:loop
if ( %tmmws == 1) {
writemws 10 Realname: $htmlfree(%multiwn)
}
elseif (%tmmws <= 1) { sockread -f %multiwn | inc %tmmws 1 | goto loop }
}
;-idem que pr le nick mais pr le serveur
if (Server: isin $htmlfree(%multiwn)) {
set %tmmws 0
:loop
if ( %tmmws == 1) {
writemws 10 Serveur: $htmlfree(%multiwn)
}
elseif (%tmmws <= 1) { sockread -f %multiwn | inc %tmmws 1 | goto loop }
}
;-idem que pr le nick mais pr les salons
if (Channels: isin $htmlfree(%multiwn)) {
set %tmmws 0
:loop
if ( %tmmws == 1) {
writemws 10 Salons: $htmlfree(%multiwn)
}
elseif (%tmmws <= 1) { sockread -f %multiwn | inc %tmmws 1 | goto loop }
}
;-idem que pr le nick mais pr le status ( si le pseudo n' est pas conecté au serveur )
if (Status: isin $htmlfree(%multiwn)) {
set %tmmws 0
:loop
if ( %tmmws == 2) {
writemws 10 Status: $htmlfree(%multiwn)
}
elseif (%tmmws <= 2) { sockread -f %multiwn | inc %tmmws 1 | goto loop }
}
}
}
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.