Adresse IP complete

enky
Invité n'ayant pas de compte PHPfrance

05 sept. 2005, 23:28

Salut,
Est-ce qu'il est possible d'afficher une adresse IP complète avec le nom du fournisseur d'accès internet en php ?

Avec $REMOTE_ADDR, j'affiche juste le numéro.
Mais sur certains sites (ex : http://www.anonymat.org/vostraces), ils affichent meme le nom du fournisseur d'accès internet. Comment font-ils ?

Mammouth du PHP | 19672 Messages

05 sept. 2005, 23:38

Un petit tour dans le phpinfo() t'aurait fait découvrir des variables d'environnement et amené vers la doc ICI
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

enky
Invité n'ayant pas de compte PHPfrance

06 sept. 2005, 00:23

Merci, c'est donc :

$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo $hostname;

En fait, je souhaite bannir un utilisateur inadmissible d'un chat. Il possède un IP dynamique. Je ne peux donc rien faire : si je le banni, il se déconnecte, puis se reconnecte aussitot pour avoir un autre IP.

Je sais qu'il a comme adresse IP dynamique :
ALyon-XXX.XXX.XXX.XXX-Abo-Wanadoo

J'aimerais donc vérifier chaque adresse IP de chaque utilisateur.
Si cet adresse contient : Lyon et Wanadoo, alors je souhaite le bannir :
echo "Accès interdit";
exit();

Comment fait-on ?

Mammouth du PHP | 19672 Messages

06 sept. 2005, 00:35

Techniquement, c'est pratiquement impossible car tu ne peux pas identifier formellement sa machine. Tu pourrais utiliser un cookie mais il peut l'effacer. Et tu pourras avoir certaines informations mais pas tout et ce sera insuffisant pour le distinguer formellement des autres utilisateurs passant pas le même fournisseur d'accès.

La seule chose qui serait envisageable, mais ça veut dire que tout le monde sera concerné: obliger à s'identifier pour pouvoir accéder à ton chat. À ce moment là, il faut un login/mot-de-passe et tu pourras bloquer un pseudo tant qu'il ne s'inscrit pas sous un autre pseudo. Dans ce dernier cas, tu peux forcer à confirmer en faisant envoyer un courriel de confirmation ce qui te permettrait d'avoir son adresse de courriel : il sera limité par le nombre d'adresses dont il dispose.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 sept. 2005, 09:59

J'aimerais donc vérifier chaque adresse IP de chaque utilisateur.
Si cet adresse contient : Lyon et Wanadoo, alors je souhaite le bannir
C'est une très mauvise idée selon moi
En appliquant cette méthode, tu vas te "débarrasser" de tous les internautes utilisant wanadoo dans la région lyonnaise.

C'est sûr que ton type n'aura plus accès mais tout les pauvres gens comme moi (eh oui, j'utilise wanadoo vers Lyon dont host contient Lyon et wanadoo) qui voudront se connecter sur ton chat seront banni

L'histoire du cookie peut fonctionner si ton utilisateur n'est pas très pointu en info.

Sinon, comme le dit Cyrano, il reste la possibilité de la connexion
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 sept. 2005, 10:26

En appliquant cette méthode, tu vas te "débarrasser" de tous les internautes utilisant wanadoo dans la région lyonnaise.
:mrgreen: :mrgreen: :mrgreen:

enky
Invité n'ayant pas de compte PHPfrance

06 sept. 2005, 11:16

Je le sais bien, mais je n'ai pas le choix. C'est juste pour quelques jours : le temps que ce type parte.
Et puis, j'ai regardé dans la liste des membres, il est le seul parmi les 1000 membres à etre Wanadien Lyonnais.

Vérifier qu'un IP contient Lyon et Wanadoo est le seul moyen de le bannir éfficacement (il s'y connait un peu en info).
Je sais qu'il est possible de créer un script pour vérifier l'IP.

enky
Invité n'ayant pas de compte PHPfrance

06 sept. 2005, 11:54

Ca y est, j'ai réussi. Je me suis inspiré du script de filtre de gros mots que vous m'avez appris :
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$banfai = Array('wanadoo'); //vérifier qu'il y a wanadoo
foreach ($banfai as $banni)
{ $comparaison = strstr($hostname, $banni); //s'il contient wanadoo alors on continue
if($comparaison!==false) {
$banville = Array('lyon'); //vérifier qu'il y a lyon
foreach ($banville as $banni)
{ $comparaison = strstr($hostname, $banni);
if($comparaison!==false) {
echo "acces refuse";
exit();}}
}}
Voilà, j'ai fait la vérification en 2 étapes. Je ne sais pas comment vérifier en 1 seul étape. Quelqu'un pour alléger ce script ?

Mammouth du PHP | 19672 Messages

06 sept. 2005, 12:20

Alléger je crois pas, mais le rendre lisible sans doute:
<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$banfai = Array('wanadoo'); //vérifier qu'il y a wanadoo
foreach ($banfai as $banni)
{
    $comparaison = strstr($hostname, $banni); //s'il contient wanadoo alors on continue
    if($comparaison !== false)
    {
        $banville = Array('lyon'); //vérifier qu'il y a lyon
        foreach ($banville as $banni)
        {
            $comparaison = strstr($hostname, $banni);
            if($comparaison !== false)
            {
                echo "acces refuse";
                exit();
            }
        }
    }
}
?>
Regarde donc la première ligne de ma signature :evil: Si tu veux être aidé, fais donc en sorte qu'on ait au moins envie de suivre le code.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 sept. 2005, 10:57

:cry: :cry: :cry:
Je peut plus aller sur ton site alors ???
:x
C'est trop injuste
[Mode hors-sujet]Personne à une photo de casimir pour mon avatar ? :langue:[/Mode hors-sujet]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

07 sept. 2005, 11:17

:cry: :cry: :cry: Je peut plus aller sur ton site alors ??? :x
Mais si !
Il te suffit de déménager... :mrgreen:
C'est trop injuste
C'est pas Casimir qui dit ça, c'est Caliméro ! [-X #-o

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 sept. 2005, 11:20

:cry: :cry: :cry: Je peut plus aller sur ton site alors ??? :x
Mais si !
Il te suffit de déménager... :mrgreen:
Jamais de la vie !!! Je suis nourris, logé, blanchi par mes parents ... :langue:
C'est trop injuste
C'est pas Casimir qui dit ça, c'est Caliméro ! [-X #-o
C'est ce que je voulais mettre mais j'ai dormis 1h30 ce matin (LAN oblige) et j'ai pas les idées en face des trous
(Non mais il m'énerve celui là à voir toutes mes boulettes ) :evil:
:langue: :mrgreen:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

07 sept. 2005, 16:59

Je suis nourri, logé, blanchi par mes parents ... :langue:
Ah ouaip ?
Dis, ils n'auraient pas envie d'adopter un charmant bambin de 34 balais, des fois... :lol:

Allez, tiens, c'est cadeau : http://images.google.fr/images?q=calime ... che+Google


Celle-là me surprend tout de même un peu... PHP Powaaaaaaaaaa !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 sept. 2005, 10:18

J'aime bien celle-là
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

08 sept. 2005, 10:24

On est bien loin de l'image puissance du Dieu des dieux grecs ! :langue:

C'est donc contre ça qu'Ulysse a tant galéré ??? :lol: