Accueil > > > BANNISSEMENT PAR IP (PDO REQUIS)
BANNISSEMENT PAR IP (PDO REQUIS)
Information sur la source
Description
Voici un simple code qui vous permet de bannir ou débannir une IP. PDO est requis pour la gestion de la BDD mais étant donnée la simplicité du code et de la table demandée, il vous sera facile d'adpter le code pour utiliser un fichier texte. (Pour la table, il s'agit d'une simple table avec un seul champ en vachar(16) nommé "ip", la table est nommé "ip_ban") Si l'utilisation de la variable $_SERVER['REMOTE_ADDR'] vous rebute, il est également aisé d'adapter avec la source qui se trouve içi: http://www.phpcs.com/codes/RECUPERER-IP-VISITEUR_4 0034.aspx A noter qu'il existe deux usages possible: [1] Avec une vérification dans l'index de votre site et une redirection comme c'est le cas içi (ce qui interdit jusqu'à la visite du site par l'ip bannis) [2] Avec une verification par exemple avant l'affichage d'un formulaire pour poster un commentaire, sans direction (plus souple, celà permet de garder un visiteur qui se voit restreint les fonctions interactives de votre site)
Source
- --------------------------VERIFICATION---------------------------------------
- <?
-
- // Script de bannissement d'IP
- // Version 1.0
- // Auteur: Angellore
- // Permet un banissement d'IP au niveau d'une fonction ou d'un accès global à un site.
-
- // Connexion SQL (A supprimer lors d'une utilisation réelle puisqu'on suppose qu'elle est déjà faite)
-
- $user = 'root';
- $pass = '';
- $ban_mess = 'Vous avez été bannis de ce site! Vilain pas beau!<br />'; // Message affiché si la redirection de marche pas.
-
- $dbh = new PDO('mysql:host=localhost;dbname=localhost', $user, $pass);
-
- foreach ($dbh->query('SELECT * from ip_ban WHERE ip = "'.$_SERVER['REMOTE_ADDR'].'"') as $row)
- {
- if(!empty($row))
- {
- header("Location: http://google.fr"); // Redirection
- exit();
- echo $ban_mess;
- }
- }
-
- ?>
-
-
- --------------------------FORMULAIRE ADMIN------------------------------------
- <?
-
- // Connexion SQL (A supprimer lors d'une utilisation réelle puisqu'on suppose qu'elle est déjà faite)
-
- $user = 'root';
- $pass = '';
-
- $dbh = new PDO('mysql:host=localhost;dbname=localhost', $user, $pass);
-
- switch ($_GET['a'])
- {
- case 'ban': // Bannissement
- // Verifications de la validité du formulaire
- if ($_POST['verif'] != '1') { echo '<span class="warn">Veuillez cocher la case de vérification de soumission du formulaire</span>'; }
- else
- {
- $dbh->exec('INSERT INTO ip_ban (ip) VALUES ("'.$_POST['ip'].'")');
- echo 'L\'adresse IP ('.$_POST['ip'].') a correctement été bannie.';
- }
- break;
- case 'dban': // Debannissement
- $dbh->exec('DELETE FROM ip_ban WHERE ip = "'.$_POST['ip'].'"');
- echo 'L\'adresse IP ('.$_POST['ip'].') a correctement été débannie.';
- break;
-
- }
-
-
- ?>
- <!-- Exemple de Style -->
- <style>
- .warn { color: FF0000; }
- </style>
-
- <h5> Bannir une adresse IP </h5>
- <form method=post action="?a=ban">
- <input type="text" name="ip" value="<? echo $_POST['ip']; ?>" size="11" maxlength="15" /><br />
- <label><input type="checkbox" name="verif" value="1" /><b>Êtes-vous sur(e)?</b> <span class="warn">/!\ Il s'agit d'une action lourde de conséquences.</span></label><br />
- <input type="submit" name="go" value="GO" />
- </form>
-
- <h5> Débannir une adresse IP </h5>
- <form method=post action="?a=dban">
- <select name="ip" size="1">
- <?
- foreach ($dbh->query('SELECT * from ip_ban') as $row) // On va chercher les adresses déjà enregistrées pour les proposer comme choix
- {
- echo '<option value="'.$row['0'].'">'.$row['0'].'</option>';
- }
- ?>
- </select>
- <input type="submit" name="go" value="GO" />
- </form>
--------------------------VERIFICATION---------------------------------------
<?
// Script de bannissement d'IP
// Version 1.0
// Auteur: Angellore
// Permet un banissement d'IP au niveau d'une fonction ou d'un accès global à un site.
// Connexion SQL (A supprimer lors d'une utilisation réelle puisqu'on suppose qu'elle est déjà faite)
$user = 'root';
$pass = '';
$ban_mess = 'Vous avez été bannis de ce site! Vilain pas beau!<br />'; // Message affiché si la redirection de marche pas.
$dbh = new PDO('mysql:host=localhost;dbname=localhost', $user, $pass);
foreach ($dbh->query('SELECT * from ip_ban WHERE ip = "'.$_SERVER['REMOTE_ADDR'].'"') as $row)
{
if(!empty($row))
{
header("Location: http://google.fr"); // Redirection
exit();
echo $ban_mess;
}
}
?>
--------------------------FORMULAIRE ADMIN------------------------------------
<?
// Connexion SQL (A supprimer lors d'une utilisation réelle puisqu'on suppose qu'elle est déjà faite)
$user = 'root';
$pass = '';
$dbh = new PDO('mysql:host=localhost;dbname=localhost', $user, $pass);
switch ($_GET['a'])
{
case 'ban': // Bannissement
// Verifications de la validité du formulaire
if ($_POST['verif'] != '1') { echo '<span class="warn">Veuillez cocher la case de vérification de soumission du formulaire</span>'; }
else
{
$dbh->exec('INSERT INTO ip_ban (ip) VALUES ("'.$_POST['ip'].'")');
echo 'L\'adresse IP ('.$_POST['ip'].') a correctement été bannie.';
}
break;
case 'dban': // Debannissement
$dbh->exec('DELETE FROM ip_ban WHERE ip = "'.$_POST['ip'].'"');
echo 'L\'adresse IP ('.$_POST['ip'].') a correctement été débannie.';
break;
}
?>
<!-- Exemple de Style -->
<style>
.warn { color: FF0000; }
</style>
<h5> Bannir une adresse IP </h5>
<form method=post action="?a=ban">
<input type="text" name="ip" value="<? echo $_POST['ip']; ?>" size="11" maxlength="15" /><br />
<label><input type="checkbox" name="verif" value="1" /><b>Êtes-vous sur(e)?</b> <span class="warn">/!\ Il s'agit d'une action lourde de conséquences.</span></label><br />
<input type="submit" name="go" value="GO" />
</form>
<h5> Débannir une adresse IP </h5>
<form method=post action="?a=dban">
<select name="ip" size="1">
<?
foreach ($dbh->query('SELECT * from ip_ban') as $row) // On va chercher les adresses déjà enregistrées pour les proposer comme choix
{
echo '<option value="'.$row['0'].'">'.$row['0'].'</option>';
}
?>
</select>
<input type="submit" name="go" value="GO" />
</form>
Conclusion
Je ne pense pas que cette source soit mise à jour étant donnée sa simplicité. Par contre, j'aimerais bien quelques petits commentaires, puisqu'il s'agit de ma première source! :D En espérant qu'elle puisse vous êtes utiles. =)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
IP variable et url fixe [ par omnikod ]
Vous avez une connexion ADSL ?Vous avez un serveur Web ?Vous avez une IP dynamique et vous voulez pouvoir acceder à votre site par une adresse du styl
Tri d'IP... [ par echo200 ]
Bonjour,En php, est-il possible de "trier" les ip authorisés à visitter un site web (définis selon nos critères), et d'éventuellement bannire les impo
Passer de dév en prod [ par iubito ]
Bjour tout le monde!J'ai besoin de votre aide car j'sais pas faire, euh... c'est la première fois que j'le fais.J'ai un serveur web sur Linux sur l'In
Adresse ip [ par kwak ]
Bonjour à tous,je ne comprends pas très bien pourquoi la valeur de $REMOTE_ADDR change continuellement dans ce script quand je l'execute:<?print("V
php : lire fichier txt, comparer heure et choix liens [ par drominik ]
voila,j'ai dans un fichier txt, l'ip du visiteur et l'heure de sa visite,et j'aimerais a chaque visiteur pouvoir aller lire le fichier txt, et compare
comment diffencier 2 PC d'un reseau (meme ip) ? [ par EnDSuB ]
http://endsub.free.fr voila, j'aimerai savoir comment diffencier 2 PC d'un reseau (meme ip) sans cookies ni sessions , est ce possible?<
connection mysql par script [ par boin ]
Imaginons que je veuille acceder a une base mysql par un script php pour y faire des tas de modifs si ça me chante.Donc j'ai un Host pour acceder a ph
du MultiPlayer dans l'aire [ par Nestor ]
SalutJe voudrais me faire sous forme de tableau un listing d'adresse ip, du ping, date, heure.....pour mon site mais je sauré jamais faire cela en php
PROTOMAIL [ par Tomcube ]
Salut !Je crée ce topic pour permettre d'améliorer Protomail qui serait vraiment utile pour les Freenautes. On pourrais se partager les tests qu'on a
mysql dernier entrer [ par titiseb28 ]
Bonjour je voudrait savoire comment faire pour affiche la derniere entrer d'une table mysql ??dans ma table g 2 champ un ip(adresse ip) et l'autre dat
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|