Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 12.08.2012
Сообщений: 3

Фильтрация по IP

12.08.2012, 12:15. Показов 4331. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Довольно долго бьюсь над, казалось бы простой задачей.
Нужен PHP-скрипт, который содержит список ip адресов, определяет IP, если IP есть в списке, то он отправляет его например на /1.html, если нет то на /2.html.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2012, 12:15
Ответы с готовыми решениями:

Фильтрация
Здравствуйте. Помогите разобраться. Есть форма, на ней компонент DBGrid, связанный с таблицей, одно из полей которой "Город"....

Фильтрация
DataModule8.ADOQuery1.Filtered:=false; if Edit2.Text<>'' then DataModule8.ADOQuery1.Filter:=' like '+QuotedStr('%'+Edit2.text+'%'); ...

фильтрация
Какие поля должны быть в источнике строк фильтра "выбор сотрудника"?

11
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
12.08.2012, 12:19
PHP
1
2
3
4
5
6
7
8
9
10
11
12
foreach($array_ip as $value)
{
 
if($value == $_SERVER['HTTP_X_REAL_IP'])
{
  header("location: 1.html");
}
else
{
  header("location: 2.html");
}
}
Добавлено через 28 секунд
это если ip в массиве
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 12:22
Цитата Сообщение от pp2016 Посмотреть сообщение
над, казалось бы простой задачей.
записываете нужные ip в текстовый файл через любой разделитель(пробел, |, \n), затем:
PHP
1
2
3
4
5
6
7
8
9
$file = 'ip.txt';
$text = file_get_contents($file);
$ip_arr = explode('разделитель',$text);
if(in_array($_SERVER['REMOTE_ADDR'],$ip_arr)) {
//есть в списке разрешенных
}
else {
//нет в списке разрешенных
}
Добавлено через 42 секунды

Не по теме:

ну вот, опять опоздал.. :(

1
0 / 0 / 0
Регистрация: 12.08.2012
Сообщений: 3
12.08.2012, 13:06  [ТС]
KOPOJI, а там можно в файл ip.txt подсети включать?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 13:10
да, можно, как и ip - через разделитель, он автоматически будет в списке разрешенных. только вам тогда проверять надо будет не $_SERVER['REMOTE_ADDR']
0
0 / 0 / 0
Регистрация: 12.08.2012
Сообщений: 3
12.08.2012, 13:44  [ТС]
KOPOJI, как тогда будет выглядеть код?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
12.08.2012, 14:39
Цитата Сообщение от c4boomb Посмотреть сообщение
foreach($array_ip as $value) { if($value == $_SERVER['HTTP_X_REAL_IP']) { header("location: 1.html"); } else { header("location: 2.html"); } }
c4boomb, не лучше ли:
PHP
1
2
3
4
5
6
7
8
if( in_array( $_SERVER['REMOTE_ADDR'], $array_ip ) )
{
    header("location: 1.html");
}
else
{
    header("location: 2.html");
}
чем в цикле обходить массив?

Добавлено через 26 минут
Цитата Сообщение от pp2016 Посмотреть сообщение
как тогда будет выглядеть код?
Если меняется в IP только последняя цифра, то можно так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php  
    // Функция для получения подсети пользователя
    function UserSubnet()
    {
        // Получаем подсеть
        $subnet = preg_replace( "/\.([0-9]*)$/", "", $_SERVER['REMOTE_ADDR'] );
        
        // Возвращаем результат
        return $subnet;
    }
    
    // Функция для получения массива подсетей
    function ListSubnet()
    {
        // Файл, в котором содержатся подсети
        $db = 'ip.dat';
        
        // Получаем данные из файла
        $list_subnet = file_get_contents( $db );
        
        // Разбиваем строку по разделителю
        $list_subnet = explode( 'разделитель', $list_subnet );
        
        // На всякий случай прогоняем элементы массива через TRIM
        $list_subnet = array_map( "trim", $list_subnet );
        
        // Возвращаем массив
        return $list_subnet;
    }
 
    // Тут проверяем
    if( in_array( UserSubnet(), ListSubnet() ) ) 
    {
        //есть в списке разрешенных
        header("location: 1.html");
    }
    else
    {
        // Нет в списке разрешённых
        header("location: 2.html");
    }
    
    
?>
Если же не только последняя, то нужно подправить регулярку.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 15:09
Цитата Сообщение от pp2016 Посмотреть сообщение
KOPOJI, как тогда будет выглядеть код?
я не знаю как узнать маску сети на php, не сталкивался с этим

Добавлено через 57 секунд
если найдете как можно узнать - то вставляете результат (полученную маску) в моем коде вместо $_SERVER['REMOTE_ADDR']
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
12.08.2012, 15:45
Цитата Сообщение от KOPOJI Посмотреть сообщение
я не знаю как узнать маску сети на php, не сталкивался с этим
Отрезаем от $_SERVER['REMOTE_ADDR'] всё, что после последней точки и всё
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 15:59
Lyodik, я что то не так понимаю? http://ru.wikipedia.org/wiki/%... 1%E5%F2%E8

Добавлено через 1 минуту
remote_addr возвращает же только ip-шник
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
12.08.2012, 16:14
Цитата Сообщение от KOPOJI Посмотреть сообщение
я что то не так понимаю?
Согласен, я тупанул в ответе на ваш топик Просто автор темы писал:
Цитата Сообщение от pp2016 Посмотреть сообщение
а там можно в файл ip.txt подсети включать?
В смысле не маску подсети, а номер подсети он наверное имел ввиду (обычно это имеют ввиду при написании подобных скриптов), вот я и написал, чтобы могли проверяться номера подсети... Вот тут есть схема (первый рисунок) про то, что я говорю: http://zyxel.ru/kb/1920
0
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
12.08.2012, 20:17
.htaccess
Code
1
2
3
RewriteEngine on
RewriteCond %{REMOTE_ADDR} (127.0.0.1|120.0.0.1|121.0.0.1)
RewriteRule .* https://www.cyberforum.ru/ [R=301,L]
Или если требует мгновенно заблокировать ip
Создать файл .htaccess
Code
1
allow from all
затем уже скрипт будет добавлять deny from ip
PHP
1
2
3
4
5
6
7
if($_GET['id']==1){//если id содержит нечто запретное
$file=file_get_contents('.htaccess');
if(preg_match('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#i',$_SERVER['REMOTE_ADDR'])){
//пишим .htaccess
file_put_contents('.htaccess',"\r\ndeny from {$_SERVER['REMOTE_ADDR']}",FILE_APPEND);
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2012, 20:17
Помогаю со студенческими работами здесь

фильтрация
Добрый день. Подскажите мне, пожалуйста, несколько вопросов по фильтрации. База данных выполнена в Access. Для вывода данных использую...

Фильтрация
Здравствуйте..делал фильтрацию, но выдает ошибку, подчеркивает Filter и Filtered. Ее необходимо объявлять в качестве переменной? ...

Фильтрация
Помогите подобрать фильтр, чтобы выравнить сигнал seq = ; % некая кодовая последовательность(в данном случае М) numberOfPeriods = 2; %...

Фильтрация в БД
Добрый вечер!.

Фильтрация
Добрый вечер!!! Помогите пожалуйста ...делаю фильтр для инвентаризационного номера ...Пишу следующий код procedure...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru