But du snippet: retrouver les coordonnées géographiques d'un pseudo à partir de son ip: Pays, Ville, Région et FAI
Pour info, le script s'aide du site ip-adress.com en simulant une connexion web. Le texte téléchargé est ensuite traité à l'aide de regexps.
Ne fonctionne *que* sur les serveurs dinosauriens qui révèlent les ip (par exemple undernet, à la condition que le pseudo n'utilise pas son host enregistré) (84.101.46.***)
; IP-LOCATOR, par Averell (fonction /whereis)
;
; But du snippet: retrouver les coordonnées géographiques d'un pseudo à partir de son ip: Pays, Ville, Région et FAI
;
; Taper /whereis pseudo pour avoir les infos du pseudo. Possibilité de l'utiliser dans la nicklist
;
; Pour info, le script s'aide du site ip-adress.com en simulant une connexion web. Le texte téléchargé est ensuite traité à l'aide de regexps.
; ATTENTION: ip-addr.com a mis un quota dépendant de votre adresse ip propre: il ne fonctionnera que 50 fois dans une journée.
;
; Ne fonctionne *que* sur les serveurs dinosauriens qui révèlent les ip (par exemple undernet, à la condition que le pseudo n'utilise pas son host enregistré)
; Ce code peut interférer avec un script utilisant déjà la fonction /dns, qui permet comme chacun sait de retrouver l'adresse ip d'un pseudo, ou le host d'une ip.
;
; Copyright: vous pouvez copier ce code, le modifier, l'incorporer dans votre script, le vendre si vous voulez! Ca m'étonnerait que ce truc vous rende riche... Mais sait-on jamais!
;
; Merci à Vestax, qui a disparu de la circulation, à qui j'ai emprunté un bout de code.
alias whereis { dns $1 | %whereis.nick = $1 }
on 1:dns: { %whereis.ipaddr = $raddress if (%whereis.ipaddr == $null) { %whereis.ipaddr = $address }
sockopen ipaddr www.ip-adress.com 80
}
alias whereis.dehtml { var %x, %rien
%rien = $regsub(R,$1-,/<[^>]+>/g,,%x)
; On strippe toutes les balises html <...> pour ne conserver que le texte
%rien = $regsub(R,%x,/^\s+/,,%x)
; On vire les espacements et les tabulations avant le texte...
%rien = $regsub(R,%x,/\s+$/,,%x)
; ... et après le texte return %x
} on *:sockopen:ipaddr:{
sockwrite -n ipaddr GET http://www.ip-adress.com/ip_tracer/ $+ %whereis.ipaddr
}
on *:sockread:ipaddr:{ if ($sockerr > 0) return
%whereis.booleen = $false
echo 12 -a -
:nextread
sockread %temp if ($sockbr == 0) { echo 12 -a - | return }
if ($regex(R,%temp,/IP address country:/) > 0) { sockread %temp | sockread %temp
%whereis.pays = $whereis.dehtml(%temp)
echo 12 -a Pays de %whereis.nick : %whereis.pays
} if ($regex(R,%temp,/IP address state:/) > 0) { sockread %temp | sockread %temp
%whereis.region = $whereis.dehtml(%temp)
echo 12 -a Région de %whereis.nick : %whereis.region
} if ($regex(R,%temp,/IP address city:/) > 0) { sockread %temp | sockread %temp
%whereis.ville = $whereis.dehtml(%temp)
echo 12 -a Ville de %whereis.nick : %whereis.ville
%whereis.booleen = $true
; Le coup du booléen, c'est pour vérifier qu'on est passé par là (voir les 4 lignes suivantes)
} if (%whereis.booleen && $regex(R,%temp,/ISP/) > 0) { sockread %temp | sockread %temp
; si on n'utilisait pas ce booléen, la ligne triggerait plusieurs fois sur le mot ISP
%whereis.isp = $whereis.dehtml(%temp)
echo 12 -a FAI de %whereis.nick : %whereis.isp
} goto nextread
}