[font:c04a=Courier New][color:c04a=#0000cc]<?
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- Récupération des infos pour une IP
[/color][color:c04a=#006600]class [/color][color:c04a=#0000cc]ip_infos [/color][/font][font:c04a=Courier New][color:c04a=#006600]{
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- variables
[/color][color:c04a=#006600]var [/color][color:c04a=#0000cc]$msg_erreur[/color][/font][font:c04a=Courier New][color:c04a=#006600];
var [/color][color:c04a=#0000cc]$erreur [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]0[/color][/font][font:c04a=Courier New][color:c04a=#006600];
var [/color][color:c04a=#0000cc]$serveur_whois [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]'whois.arin.net'[/color][/font][font:c04a=Courier New][color:c04a=#006600];
var [/color][color:c04a=#0000cc]$serveur_whois2 [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]''[/color][/font][font:c04a=Courier New][color:c04a=#006600];
var [/color][color:c04a=#0000cc]$whois_texte [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]''[/color][/font][font:c04a=Courier New][color:c04a=#006600];
function [/color][color:c04a=#0000cc]ip_infos[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$ip[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- IP valide ?
[/color][color:c04a=#0000cc]$host [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]gethostbyaddr[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$ip[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
if (![/color][color:c04a=#0000cc]$ip [/color][color:c04a=#006600]== [/color][color:c04a=#0000cc]gethostbyname[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$host[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]msg_erreur [/color][color:c04a=#006600].= [/color][color:c04a=#cc0000]"$ip: adresse IP invalide<br>\n"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]erreur [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]1[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- connexion au serveur whois
[/color][color:c04a=#006600]if (![/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]erreur[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
if (![/color][color:c04a=#0000cc]$sock [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]fsockopen[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]43[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$num[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$error[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]20[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
unset([/color][color:c04a=#0000cc]$sock[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]msg_erreur [/color][color:c04a=#006600].= [/color][/font][font:c04a=Courier New][color:c04a=#cc0000]"Connexion impossible au serveur "
[/color][color:c04a=#006600]. [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois[/color][color:c04a=#006600].[/color][color:c04a=#cc0000]" (port 43)"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]erreur [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]2[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
}
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- lecture des infos
[/color][color:c04a=#006600]if (![/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]erreur[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]''[/color][/font][font:c04a=Courier New][color:c04a=#006600];
[/color][color:c04a=#0000cc]fputs[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$ip[/color][color:c04a=#006600].[/color][color:c04a=#cc0000]"\n"[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
while (![/color][color:c04a=#0000cc]feof[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte [/color][color:c04a=#006600].= [/color][color:c04a=#0000cc]fgets[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]10240[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
}
[/color][color:c04a=#0000cc]fclose[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- serveur whois complémentaire ?
[/color][color:c04a=#006600]if ([/color][color:c04a=#0000cc]eregi[/color][color:c04a=#006600]([/color][color:c04a=#cc0000]"RIPE.NET"[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2 [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]"whois.ripe.net"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
elseif ([/color][color:c04a=#0000cc]eregi[/color][color:c04a=#006600]([/color][color:c04a=#cc0000]"whois.apnic.net"[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2 [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]"whois.apnic.net"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
elseif ([/color][color:c04a=#0000cc]eregi[/color][color:c04a=#006600]([/color][color:c04a=#cc0000]"nic.ad.jp"[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2 [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]"whois.nic.ad.jp"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- suppression des caractères japonais sur JPNIC
[/color][color:c04a=#0000cc]$flag [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]"/e"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
elseif ([/color][color:c04a=#0000cc]eregi[/color][color:c04a=#006600]([/color][color:c04a=#cc0000]"whois.registro.br"[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2 [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]"whois.registro.br"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
}
[/color][/font][font:c04a=Courier New][color:c04a=#ff9900]// --- interrogation du second serveur whois
[/color][color:c04a=#006600]if([/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2 [/color][color:c04a=#006600]&& ![/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]erreur[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte [/color][color:c04a=#006600]= [/color][color:c04a=#cc0000]""[/color][/font][font:c04a=Courier New][color:c04a=#006600];
if(! [/color][color:c04a=#0000cc]$sock [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]fsockopen[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]43[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$num[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$error[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]10[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
unset([/color][color:c04a=#0000cc]$sock[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]msg_erreur [/color][color:c04a=#006600].= [/color][/font][font:c04a=Courier New][color:c04a=#cc0000]"Connexion impossible au serveur "
[/color][color:c04a=#006600]. [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]serveur_whois2 [/color][color:c04a=#006600].[/color][color:c04a=#cc0000]" (port 43)"[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
else {
[/color][color:c04a=#0000cc]fputs[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$ip[/color][color:c04a=#006600].[/color][color:c04a=#0000cc]$flag[/color][color:c04a=#006600].[/color][color:c04a=#cc0000]"\n"[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
while (![/color][color:c04a=#0000cc]feof[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][/font][font:c04a=Courier New][color:c04a=#006600])) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte [/color][color:c04a=#006600].= [/color][color:c04a=#0000cc]fgets[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]10240[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
}
[/color][color:c04a=#0000cc]fclose[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$sock[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
}
}
if(![/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]erreur[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
[/color][color:c04a=#0000cc]$tb_lignes [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]explode[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]chr[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]10[/color][color:c04a=#006600]), [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]whois_texte[/color][/font][font:c04a=Courier New][color:c04a=#006600]);
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]infos [/color][/font][font:c04a=Courier New][color:c04a=#006600]= array();
for ([/color][color:c04a=#0000cc]$i[/color][color:c04a=#006600]=[/color][color:c04a=#0000cc]0[/color][color:c04a=#006600]; [/color][color:c04a=#0000cc]$i[/color][color:c04a=#006600]<[/color][color:c04a=#0000cc]count[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$tb_lignes[/color][color:c04a=#006600]); [/color][color:c04a=#0000cc]$i[/color][/font][font:c04a=Courier New][color:c04a=#006600]++) {
[/color][color:c04a=#0000cc]$tmptb [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]explode[/color][color:c04a=#006600]([/color][color:c04a=#cc0000]":"[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]$tb_lignes[/color][color:c04a=#006600][[/color][color:c04a=#0000cc]$i[/color][/font][font:c04a=Courier New][color:c04a=#006600]]);
if ([/color][color:c04a=#0000cc]count[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$tmptb[/color][color:c04a=#006600]) > [/color][color:c04a=#0000cc]1 [/color][color:c04a=#006600]&& [/color][color:c04a=#0000cc]substr[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$tmptb[/color][color:c04a=#006600][[/color][color:c04a=#0000cc]0[/color][color:c04a=#006600]], [/color][color:c04a=#0000cc]0[/color][color:c04a=#006600], [/color][color:c04a=#0000cc]1[/color][color:c04a=#006600])!=[/color][color:c04a=#cc0000]'%'[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
[/color][color:c04a=#0000cc]$key [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]trim[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$tmptb[/color][color:c04a=#006600][[/color][color:c04a=#0000cc]0[/color][/font][font:c04a=Courier New][color:c04a=#006600]]);
[/color][color:c04a=#0000cc]$val [/color][color:c04a=#006600]= [/color][color:c04a=#0000cc]trim[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$tmptb[/color][color:c04a=#006600][[/color][color:c04a=#0000cc]1[/color][/font][font:c04a=Courier New][color:c04a=#006600]]);
if([/color][color:c04a=#0000cc]strlen[/color][color:c04a=#006600]([/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]infos[/color][color:c04a=#006600][[/color][color:c04a=#cc0000]"$key"[/color][color:c04a=#006600]]) > [/color][color:c04a=#0000cc]0[/color][/font][font:c04a=Courier New][color:c04a=#006600]) {
[/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]infos[/color][color:c04a=#006600][[/color][color:c04a=#cc0000]"$key"[/color][color:c04a=#006600]] .= [/color][color:c04a=#cc0000]', ' [/color][color:c04a=#006600]. [/color][color:c04a=#0000cc]$val[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
elseif ([/color][color:c04a=#0000cc]$key[/color][color:c04a=#006600]) [/color][color:c04a=#0000cc]$this[/color][color:c04a=#006600]->[/color][color:c04a=#0000cc]infos[/color][color:c04a=#006600][[/color][color:c04a=#cc0000]"$key"[/color][color:c04a=#006600]] = [/color][color:c04a=#0000cc]$val[/color][/font][font:c04a=Courier New][color:c04a=#006600];
}
}
}
}
}
[/color][color:c04a=#0000cc]?>[/color] [/font]