PHP BAN IP ไม่ให้เข้าเว็บจากฐานข้อมูลยังไงอะครับ

เริ่มโดย ThaNaButS, 10 กุมภาพันธ์ 2008, 20:19:08

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

ThaNaButS

คืออยากให้แบนไอพีของคนที่เราใส่ไว้ในฐานข้อมูลอะครับ แบบประมาณนี้อะครับ หน้า sexy.php ไม่ให้ไอพีใน ban-ips.txt เข้ามาใช้บริการ ซึ่งใน ban-ips.txt จะบรรจุไอพีต่างดังนี้อะครับ

127.0.0.0
127.0.0.1
127.0.0.2
127.0.0.3


จะมีวิธีเขียนได้ไหมครับ

EThaiZone

ban ที่ cpanel จะดีกว่าครับ

ผมเคยเขียนระบบตัด die ทิ้งให้เมื่อก่อน
สุดท้ายเวลาใช้จริงยังกินระบบครับ แอดมือเองดีกว่า

ThaNaButS

อ้างถึงจาก: EThaiZone ใน 10 กุมภาพันธ์ 2008, 20:21:36
ban ที่ cpanel จะดีกว่าครับ

ผมเคยเขียนระบบตัด die ทิ้งให้เมื่อก่อน
สุดท้ายเวลาใช้จริงยังกินระบบครับ แอดมือเองดีกว่า
งงคับ :P :P คือผมจะทำเป็นระบบจัดการเว็บอะครับคือในระบบจัดการเว็บจะมีหน้าหนึ่งที่ดึงข้อมูลทั้งหมดของ ban-ips.txt  มาให้เจ้าของระบบแก้ไขอะครับ

EThaiZone

อ้อ คือแค่ไม่อยากให้คนเข้าเฉพาะหน้านั้นใช่ไหมครับ

ผมเขียนง่ายๆ ตามนี้นะ

โหลด XIP จากนี้มาก่อน เป็นคลาสใช้ตรวจหา ip
http://www.developera.com/w/php/xip-class/

<?
require("xip.php");
$XIP = new XIP();
DEFINE('IP', $XIP->IP['client']);

$banlist = array();
$filename = "ban-ips.txt";
if(file_exists($filename)) $banlist = str_replace("\n", "", file($filename));
$key = array_search(IP, $banlist);
if($key !== FALSE) {
die('You cannot access this page');
}
?>


:)

ThaNaButS

อ้างถึงจาก: EThaiZone ใน 11 กุมภาพันธ์ 2008, 09:37:11
อ้อ คือแค่ไม่อยากให้คนเข้าเฉพาะหน้านั้นใช่ไหมครับ

ผมเขียนง่ายๆ ตามนี้นะ

โหลด XIP จากนี้มาก่อน เป็นคลาสใช้ตรวจหา ip
http://www.developera.com/w/php/xip-class/

<?
require("xip.php");
$XIP = new XIP();
DEFINE('IP', $XIP->IP['client']);

$banlist = array();
$filename = "ban-ips.txt";
if(file_exists($filename)) $banlist = str_replace("\n", "", file($filename));
$key = array_search(IP, $banlist);
if($key !== FALSE) {
die('You cannot access this page');
}
?>


:)

เก่งสุดๆๆเลยคับ :) :) แต่ผมลองทดสอบกับเครื่องของผมมันไม่ได้อะครับเวลาเราใส่ข้อมูลใน ban-ips.txt ว่า
127.0.0.0
127.0.0.1
127.0.0.2
กับไม่ได้แต่เวลาใส่ข้อมูลใน ban-ips.txt ว่า 127.0.0.1 กับแบนได้ซะงั้นช่วยดูให้หน่อยนะคับสุดหล่อ

EThaiZone

แฮะๆ เขียนตกไปหน่อยครับ 2 แบบนะ แบบแรก

<?
require("xip.php");
$XIP = new XIP();
DEFINE('IP', $XIP->IP['client']);

$banlist = array();
$filename = "ban-ips.txt";

if(file_exists($filename)) $banlist = str_replace(array("\n", "\r"), "", file($filename));

$key = array_search(IP, $banlist);
if($key !== FALSE) {
die('You cannot access this page');
}
?>


อีกแบบนะครับ ลองเขียนดู ฟังค์ชั่นแปลกๆ หลายคนไม่ค่อยได้มีโอกาสใช้กัน

<?
require("xip.php");
$XIP = new XIP();
DEFINE('IP', $XIP->IP['client']);

$banlist = array();
$filename = "ban-ips.txt";

if(file_exists($filename))$banlist = file($filename);
array_walk($banlist, create_function('&$value', '$value = trim($value);'));

$key = array_search(IP, $banlist);
if($key !== FALSE) {
die('You cannot access this page');
}
?>

thenetxx

array walk เคยใช้

แต่ array search ไม่เคยแฮะ งืม ๆๆ ง่ายดี ปกติใช้ foreach
Develop site but can't develop life
ASIA

ThaNaButS

อ้างถึงจาก: EThaiZone ใน 12 กุมภาพันธ์ 2008, 08:43:27
แฮะๆ เขียนตกไปหน่อยครับ 2 แบบนะ แบบแรก

<?
require("xip.php");
$XIP = new XIP();
DEFINE('IP', $XIP->IP['client']);

$banlist = array();
$filename = "ban-ips.txt";

if(file_exists($filename)) $banlist = str_replace(array("\n", "\r"), "", file($filename));

$key = array_search(IP, $banlist);
if($key !== FALSE) {
die('You cannot access this page');
}
?>


อีกแบบนะครับ ลองเขียนดู ฟังค์ชั่นแปลกๆ หลายคนไม่ค่อยได้มีโอกาสใช้กัน

<?
require("xip.php");
$XIP = new XIP();
DEFINE('IP', $XIP->IP['client']);

$banlist = array();
$filename = "ban-ips.txt";

if(file_exists($filename))$banlist = file($filename);
array_walk($banlist, create_function('&$value', '$value = trim($value);'));

$key = array_search(IP, $banlist);
if($key !== FALSE) {
die('You cannot access this page');
}
?>

ขอตรบมือให้ครับ ::) แจ่มจิงๆ ;D ;D

absolutex

มาขอรับด้วยคนขอบคุณครับ กำลังต้องการเลย :)  ::)

kudjung

หา IP

function getIP()

{

if (!empty($_SERVER['HTTP_CLIENT_IP']))

//check ip from share internet

{

$ip=$_SERVER['HTTP_CLIENT_IP'];

}

elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))

//to check ip is pass from proxy

{

$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];

}

else

{

$ip=$_SERVER['REMOTE_ADDR'];

}

return $ip;

}