Бан система

mute

Registered
понеже си правя бан системата да е свързана с тази на пхпбб т.е. да записвам в таблицата на пхпбб и немога да разбера по какъв начин се записват ИП-тата в полето защото явно е хаширано но как :S не е с мд5 или ша1
 

Admin

Registered
Аз чак сега видях въпроса. :?
ЩЕ ти пиша отговор по късно, че там работата е бъгава.
 

Admin

Registered
Има две функции:
кодиране и декодиране


function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}


function decode_ip($int_ip)
{
$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
}


Примерно ако искаш да запишеш някой IP адрес в бан листата на PHPBB
ще трябва кода да е така:
<?
function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}

$ip_za_ban="212.34.34.32"
$ip_za_ban=encode_ip($ip_za_ban);

//после вече следва запис на $ip_za_ban в базата данни на phpBB

?>

И другата функция я ползваш в случай че искаш да четеш от базата данни.

Ако има нещо неясно или някакъв проблем пиши.
 

mute

Registered
добре искам да проверявам дали потребителя не е баннат такали трябва да стане
include("conn.php");

function decode_ip($int_ip)
{
$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
}
$newip=decode_ip($ip);
$link=mysql_connect('localhost',$user,$password);
$db=mysql_select_db($database);
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$query="SELECT ban_ip FROM phpbb_banlist where ban_ip like '$newip'";
$result=mysql_query($query, $link);

if(mysql_num_rows($result)>0){echo 'Вие сте баннат! ';exit();}
 

Admin

Registered
mute каза:
добре искам да проверявам дали потребителя не е баннат такали трябва да стане
include("conn.php");

function decode_ip($int_ip)
{
$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
}
$newip=decode_ip($ip);
$link=mysql_connect('localhost',$user,$password);
$db=mysql_select_db($database);
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$query="SELECT ban_ip FROM phpbb_banlist where ban_ip like '$newip'";
$result=mysql_query($query, $link);

if(mysql_num_rows($result)>0){echo 'Вие сте баннат! ';exit();}


Не. :)

Първо разбери потребителя с какъв IP адрес е.

После да го кодираш:
<?
include("conn.php");
$ip= getenv("REMOTE_ADDR");

function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}


$newip=encode_ip($ip);
$link=mysql_connect('localhost',$user,$password);
$db=mysql_select_db($database);
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$query="SELECT ban_ip FROM phpbb_banlist where ban_ip like '$newip'";
$result=mysql_query($query, $link);

if(mysql_num_rows($result)>0){echo 'Вие сте баннат! ';exit();}

?>
 

Горе