Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IDENTIFICATION DE VOTRE FAI EN PHP


Information sur la source

Catégorie :Réseau & Internet Classé sous : fai, diana Niveau : Initié Date de création : 06/04/2007 Vu : 4 602

Note :
1 / 10 - par 2 personnes
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

Description

Bonjour,

Alors voici un code qui affiche le FAI du client, il s'apparente à celui d'ImmortalPC mais en plus simple si j'ose dire ;)
Il fonctionne chez moi, et devrait fonctionner chez vous aussi ;).
 

Source

  • <?php //Code fait pas Diana.S ne pas enlever....
  • $ip = $_SERVER['REMOTE_ADDR'];//On obtient l'adresse IP
  • $chaine_host = gethostbyaddr($ip);//on transforme en Host avec adresse du FAI
  • $motif_host='Club-internet|Tiscali|Sogetel|Belgacom|Proxad|Bluewin|Telebecinternet';
  • echo $chaine_host;
  • if (!eregi($motif_host,$chaine_host,$regs)) {echo'FAI inconnu !';} else {
  • foreach($regs as $result)
  • {switch($result)
  • {
  • case 'proxad':
  • $change=eregi_replace($result,'Free',$result); echo 'Votre FAI est : '.'<font color=green>'.ucfirst($change).'</font>'; break;
  • case 'club-internet' :
  • $change=eregi_replace($result,'oui c bien club !',$result); echo 'Votre FAI est : '.'<font color=green>'.ucfirst($change).'</font>'; break;
  • default :
  • echo 'Votre FAI est : '.'<font color=green>'.ucfirst($result).'</font>';break;
  • }}};
  • ?>
<?php //Code fait pas Diana.S ne pas enlever....
$ip = $_SERVER['REMOTE_ADDR'];//On obtient l'adresse IP
$chaine_host = gethostbyaddr($ip);//on transforme en Host avec adresse du FAI
$motif_host='Club-internet|Tiscali|Sogetel|Belgacom|Proxad|Bluewin|Telebecinternet';
echo $chaine_host;
if (!eregi($motif_host,$chaine_host,$regs)) {echo'FAI inconnu !';} else {
foreach($regs as $result)
{switch($result)
  {
  case 'proxad':
    $change=eregi_replace($result,'Free',$result); echo 'Votre FAI est : '.'<font color=green>'.ucfirst($change).'</font>'; break;

	case 'club-internet' :
    $change=eregi_replace($result,'oui c bien club !',$result); echo 'Votre FAI est : '.'<font color=green>'.ucfirst($change).'</font>'; break;
  
  default :
   echo 'Votre FAI est : '.'<font color=green>'.ucfirst($result).'</font>';break;
}}};
?>

Conclusion

Attention faut respecter la CAsse(CASE) avec le CASE du switch, rho la la ;p.
Deplus en parallèle je travail sur le même style de code mais pour d'autres affichages, il est très intuitif à modifier !

 

Commentaires et avis

signaler à un administrateur
Commentaire de Diabless6 le 06/04/2007 15:49:41

J'ai un projet assez compliqué qui necessitera les fonctions(routines) pour que ma source soit parfaite ;)

signaler à un administrateur
Commentaire de jdalton42 le 06/04/2007 18:54:57

mwé je suis founi par brutele et sa me met "FAI inconnu" ...

brutele.be = fournisseur belge (==> devient lentement voo.be)

signaler à un administrateur
Commentaire de Diabless6 le 06/04/2007 19:16:59

c normale, ton FAI n'est pas dans la base de donnée.
Mais ceci dit cette méthode pose problème avec plusieurs FAI qui utilise le même réseau. Donc la reconnaissance via l'IP serait mieux et plus juste.

signaler à un administrateur
Commentaire de vilhjalms le 07/04/2007 11:11:43

Heu initie c est peut etre un petit peu abuse non ?

signaler à un administrateur
Commentaire de guisx00 le 07/04/2007 14:01:43

je crois que ta oublie les des principal FAI fr wanadoo

signaler à un administrateur
Commentaire de kankrelune le 09/04/2007 00:39:02

Initié ne se justifie pas pour cette source qui est de plus peu optimisée... l'utilisation des expression rationnelles n'est pas justifié... et c'est quoi ce eregi_replace... sert à rien... la méthode pour récupérer l'ip quand à elle n'est pas fiable... si tu veux éviter les problèmes de casse dans le switch tu peux faire switch(strtolower($result)) et tu passe tes case en minuscules... .. .

@ tchaOo°

signaler à un administrateur
Commentaire de hvb le 09/04/2007 00:51:26

useless...!
cela couvre une infime partie des FAI, le code n'est pas reutilisable de la sorte, et ça ne marchera pas du tout avec mon ancien fai qu'est chello/upc/noos sur lequel une resolution de nom n renvoit rien et échoue (et n'est pas dans la liste de toute façon).
je ne m'attarde pas sur le niveau "initié"... les autres y sont deja passé

signaler à un administrateur
Commentaire de motherboy le 09/04/2007 11:07:02

Que c'est laid

signaler à un administrateur
Commentaire de Diabless6 le 09/04/2007 11:46:30

Merci pour les critiques constructives, les autres ...

signaler à un administrateur
Commentaire de Diabless6 le 09/04/2007 11:56:44

Pour kankrelune :

1) La méthode utilisée n'a rien avoir avec le repérage avec les "points". Mais ceci dit, elle fonctionne quand même. Elle est beaucoup plus facile à comprendre.
2) Pour le repérage du FAI, oui c vrai quil y a un gros trou notamment comme je le disais sur le partage des réseaux comme Proxad qui est utilisé par Free et ainsi que NeufTel.

2 méthodes sont à l'étude: la 1ère utilisant les 2 premier nombre de l'adresse IP permet de reconnaitre le fournisseur.
LE problème c'est quil faut trouver cette base de donnée.

l'utilisation du RIpe, quant à elle, je ne sais pas ce que cela vaut. Elle contient une base pet être assez complète, mais je pense quelle est limitée.

signaler à un administrateur
Commentaire de kankrelune le 10/04/2007 12:24:03

"Pour kankrelune :

1) La méthode utilisée n'a rien avoir avec le repérage avec les "points". Mais ceci dit, elle fonctionne quand même. Elle est beaucoup plus facile à comprendre."

Rien à voir... moi ce que je te dis c'est que la démarche n'est pas bonne notament au niveau de l'utilisation des expressions rationelles... .. . ;o)

@ tchaOo°

signaler à un administrateur
Commentaire de ImmortalPC le 10/04/2007 15:13:32

Salut,

Tu dis ce code simple, et pourtant il bien compliqué pour le peu qu' il fait.
Mon code est très simple mais on peu le simplifier à 3 lignes si tu veux :
<?php
$ip = $_SERVER['REMOTE_ADDR'];//On obtient l' adresse IP
$dyn = explode('.', gethostbyaddr($ip));
echo 'Votre FAI est : ',ucfirst($dyn[count($dyn) - 2]);
?>

Pas besoin de $motif_host, car si tu as étudié les résultats de gethostbyaddr tu as pu voir que la fin est la même :
`dyn`.monfai.fr

Il est vrais qu' avec mes 3 lignes je ne trouve pas free mais proxad, c' est pourquoi j' ai proposé plusieurs versions, avec divers manière de trouver et de vérifier le FAI.

Mais si on part avec un simple remplacement alors voilà 3 lignes qui font la même chose :
<?php
$ip = $_SERVER['REMOTE_ADDR'];//On obtient l' adresse IP
$dyn = explode('.', gethostbyaddr($ip));
echo 'Votre FAI est : ',ucfirst(str_replace('proxad', 'Free', $dyn[count($dyn) - 2]));
?>

Mais le vrais problème maintenant c' est qu' il y a de plus en plus de FAI qui se mettent à l' IP v6, ce qui rend ces résultats obsolètes.

@+

signaler à un administrateur
Commentaire de yngwie le 10/04/2007 21:32:32

${Que c'est laid}++

signaler à un administrateur
Commentaire de vilhjalms le 11/04/2007 01:06:39

heu ?

<?php
$ip = $_SERVER['REMOTE_ADDR'];//On obtient l' adresse IP
$dyn = explode('.', gethostbyaddr($ip));
echo 'Votre FAI est : ',ucfirst($dyn[count($dyn) - 2]);
?>

!!!

signaler à un administrateur
Commentaire de Diabless6 le 11/04/2007 11:41:18

Salut ImmortalPC ,

J'aime bien tes sources, elles sont claires et bien écrites, mais moi j'aime pas trop copier les idées des autres, c'est pourquoi j'avais tourner le code d'une autre façon, même si ce n'est pas la meilleur.

Et puis, j'ai des lacunes en php, c'est normalement je connais pas toutes les expressions. Mais comme on dit l'oiseau fait son nid petit à petit... ;)

Pour l'IPv6, vu la structure de l'adresse, c'est vrai que cela rend les scripts obsolètes, mais peut être et il possible de les rendres fonctionnels sur ce genre d'adresse, quoi que l'IPV6 m'a l'air d'être un grand chamboulement...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

protection [ par soul2006 ] je suis entrain de faire un projet de fin d'&#233;tude et mon aplication est de faire un web site en php mon travail est vien d'&#233;tre&nbsp;termine serveur smtp [ par aminesv ] bonsoir!!!je voudrai faire une page qui pemet d'envoyé un mail dans une boite existante (qui servirait a envoyé la confirmation d'un nouvel inscrit, b ip du fai [ par dragoune ] bonjours,j' ai lu quelques forum et bon j'ai trouvé ça :$_SERVER['HTTP_X_FORWARDED_FOR']$_SERVER['HTTP_CLIENT_IP']mais le second code indique mon ip l


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,718 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.