Проверка IP

Статус
В этой теме нельзя размещать новые ответы.

deloest

Создатель
Регистрация
27 Июн 2009
Сообщения
22
Реакции
3
подскажите код (или наведите на смысл) как проверять юзера по такому принцыпу:

есть юзер с ип к примеру 1.1.1.2, он у него меняется по последнему числу, т.е. как сделать проверку на последнее число т.е.

иф ($ип = 1.1.1.*) {
ечо "Иди ходи";
} елсе {
ечо "Все норм";
}

имеется только его ИП 1.1.1.2 который записан одним полем в БД.

:bc::bc::bc:
 
PHP:
if(strpos($ip,'1.1.1.')==0)){
echo "Hodi";
}
else{
echo "Ne hodi";
}
 
спасибо огромное, но я тупанул когда вопрос создавал:

как сделать проверку по первым трем цефрам Ип адреса если сервер узнал только его ИП к примеру 1.1.1.2

Код:
if(strpos($ip,'[U]$ПЕРВЫЕ 3 ЦЫФРЫ ИПишника[/U]')==0)){
echo "Hodi";
}
else{
echo "Ne hodi";
}

$ПЕРВЫЕ 3 ЦЫФРЫ ИПишника - как именно это узнать?
 
PHP:
for($i=0;i<3;i++){
$pos = strpos($ip, '.');
$sip = $sip+substr($ip,0,$pos);
$ip = substr($ip,$pos);
}
что то типа этого, проверяй могут быть ошибки на пхп почти не писал
 
PHP:
<?php
$ip = '11.22.33.44';
$dotpos = strrpos($ip, '.');
$parts = substr($ip, 0, $dotpos);
echo $parts;
?>
записывает в $parts 11.22.33

PHP:
$ip_array = explode('.',$ip);

запишет в $ip_array[0] 11
$ip_array[1] 22
$ip_array[2] 33
$ip_array[3] 44
 
PHP:
$ip1 = '100.150.200.44';
$ip2 = '100.150.200.55';

$numIp1 = ip2long($ip1);
$numIp2 = ip2long($ip2);

if( ($numIp1 >> 8) == ($numIp2 >> 8) )
{
	echo "Hodi";
}
else
{
	echo "Ne hodi";
}
Переводит ip в число и сравнивает, откидывая 8 бит.
 
для чего это если не секрет?
 
Для чего откидывать 8 бит?
8 бит это 255
"откидывая" 8 бит - избавляемся от последней части ip

Если потребуется сравнить скажем не три, а два первых "числа" ip, то надо будет "откинуть" 16 бит
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху