Page 1 sur 2
Adresse IP complete
Posté : 05 sept. 2005, 23:28
par enky
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 ?
Posté : 05 sept. 2005, 23:38
par Cyrano
Un petit tour dans le phpinfo() t'aurait fait découvrir des variables d'environnement et amené vers
la doc ICI
Posté : 06 sept. 2005, 00:23
par enky
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 ?
Posté : 06 sept. 2005, 00:35
par Cyrano
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.
Posté : 06 sept. 2005, 09:59
par zeus
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
Posté : 06 sept. 2005, 10:26
par albat
Posté : 06 sept. 2005, 11:16
par enky
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.
Posté : 06 sept. 2005, 11:54
par enky
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 ?
Posté : 06 sept. 2005, 12:20
par Cyrano
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

Si tu veux être aidé, fais donc en sorte qu'on ait au moins envie de suivre le code.
Posté : 07 sept. 2005, 10:57
par zeus
Posté : 07 sept. 2005, 11:17
par albat
Mais si !
Il te suffit de déménager...
C'est trop injuste
C'est pas Casimir qui dit ça, c'est Caliméro ! [-X

Posté : 07 sept. 2005, 11:20
par zeus
Mais si !
Il te suffit de déménager...
Jamais de la vie !!! Je suis nourris, logé, blanchi par mes parents ...
C'est trop injuste
C'est pas Casimir qui dit ça, c'est Caliméro ! [-X

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 )

Posté : 07 sept. 2005, 16:59
par albat
Je suis nourri, logé, blanchi par mes parents ...

Ah ouaip ?
Dis, ils n'auraient pas envie d'adopter un charmant bambin de 34 balais, des fois...
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 !
Posté : 08 sept. 2005, 10:18
par zeus
Posté : 08 sept. 2005, 10:24
par albat
On est bien loin de l'image puissance du Dieu des dieux grecs !
C'est donc contre ça qu'Ulysse a tant galéré ???
