Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запрет доступа по инетервалу IP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Okula
Отправлено: 27 Января, 2013 - 22:38:38
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Возникла такая задача - запретить доступ к сайту по интервалу IP адресов.
Например с 213.155.0.168 до 213.155.0.175
Я делаю таким образом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Order Deny, Allow
  2. Deny from 213.155.0.168/213.155.0.175

Правильно ли я указал интервал IP адресов?
 
 Top
KingStar
Отправлено: 27 Января, 2013 - 22:52:56
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




по моему нет, после слеша указывается маска
(Добавление)
и насколько я знаю - интервал нельзя указать Огорчение


-----
То что программа работает, не означает что она написана правильно!
 
 Top
EuGen Администратор
Отправлено: 27 Января, 2013 - 23:01:15
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Okula пишет:
213.155.0.168/213.155.0.175

- так задавать интервал некорректно. Такая запись синтаксически правильна, однако после знака дроби ожидается маска сети, а не значение интервала. Поэтому, требуется указывать правильную маску (вероятно, в ряде случаев придется действовать перечислением)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Okula
Отправлено: 27 Января, 2013 - 23:03:50
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




EuGen, спс. На другом форуме мне предложили сделать так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Order Allow,Deny
  2. Allow from all
  3. Deny from 213.155.0.168/29

Такой вариант тоже правильный будет?
 
 Top
KingStar
Отправлено: 27 Января, 2013 - 23:09:57
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




такой вариант правильный, т.к. здесь ты уже указал маску подсети


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Okula
Отправлено: 27 Января, 2013 - 23:11:32
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




KingStar, а как расчитывается эта маска? Видел на каком-то форуме пример расчёта, но так и не смог понять. Там считали в двоичном коде.
 
 Top
KingStar
Отправлено: 27 Января, 2013 - 23:11:39
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




вернее её длину
(Добавление)
вычислить самому сложно, найди в инете калькулятор
(Добавление)
Сетевой калькулятор Подмигивание
(Добавление)
ну вот например нашел то, что тебе нужно

http://ip-calculator[dot]ru/


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Okula
Отправлено: 27 Января, 2013 - 23:22:41
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




KingStar, спасибо Улыбка
 
 Top
KingStar
Отправлено: 27 Января, 2013 - 23:24:42
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




плиз Подмигивание


-----
То что программа работает, не означает что она написана правильно!
 
 Top
EuGen Администратор
Отправлено: 28 Января, 2013 - 08:08:10
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Маска расчитывается, исходя из приципа
HOST & MASK = NETWORK
То есть если маска 255.255.255.0, сеть 192.168.10.0, то удовлетворять условию выше будут хосты 192.168.10.1 - 192.168.10.255
Разумеется, для более наглядного применения маски нужно приводить адреса хостов и маску в двоичный вид. Для этого нужно учитывать, что в IPv4 адресах есть 32 бита, а точками условно отделяются октеты.
Если маска указана числом, то оно означает число ненулевых бит слева (маска всегда неразрывна). Пояснить можно так:
Исторически сложились "классы" сетей - A,B,C - для масок длины 8,16 и 24 соответственно. Но с развитием эпохи Internet стало ясно, что такая классификация слишком расточительна, поэтому стали применяться маски другой длины - для выделения более ограниченных блоков адресов. Потому и существует CIDR (бессклассовые адреса) - когда маска не кратна 8. Работает это так же - от начала адреса откладываются N бит маски.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB