access.inc.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. define("WHITE_ACCESS", array(
  3. "user",
  4. "unknow",
  5. "login",
  6. "login-salarie",
  7. "login-control",
  8. "spash-screen",
  9. "maintenance",
  10. "authenticator",
  11. "logout",
  12. "test",
  13. ));
  14. define("OFF_LINE", array(
  15. "authenticator",
  16. "login",
  17. "cron",
  18. ));
  19. // Filtre les IP authorisés à accéder au site
  20. if(!is_null(WHITE_IP)){
  21. function getUserIP() {
  22. // Vérifie si l'adresse IP est disponible dans les en-têtes HTTP
  23. if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
  24. // Vérifie si l'IP est passée par un proxy
  25. $ip = $_SERVER['HTTP_CLIENT_IP'];
  26. } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  27. // Vérifie si l'IP est passée par un autre proxy
  28. $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  29. } else {
  30. // Sinon, utilise l'adresse IP directement
  31. $ip = $_SERVER['REMOTE_ADDR'];
  32. }
  33. return $ip;
  34. }
  35. echo "Votre adresse IP est : " . $userIP;
  36. if(!in_array(getUserIP(), WHITE_IP)){
  37. header('HTTP/1.0 401 Unauthorized');
  38. header('Content-Type: text/html; charset=utf-8');
  39. echo ' <!DOCTYPE html>
  40. <html lang="fr">
  41. <head>
  42. <meta charset="UTF-8">
  43. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  44. <title>403 Accès Interdit</title>
  45. <style>
  46. body {
  47. font-family: Arial, sans-serif;
  48. background-color: #f8d7da;
  49. color: #721c24;
  50. text-align: center;
  51. padding: 50px;
  52. }
  53. h1 {
  54. font-size: 2em;
  55. }
  56. </style>
  57. </head>
  58. <body>
  59. <h1>403 Accès Interdit</h1>
  60. </body>
  61. </html>';
  62. exit();
  63. }
  64. }