URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5142
[ Назад ]

Исходное сообщение
"perl Нужен совет!!!!"

Отправлено Adil_18 , 13-Фев-06 17:15 
Срочно!!!!!!!!!!!
Нужен совет хорошего perl програмера

  my $self = shift;
  my $file = shift;
  my $type = $self->r->content_type;
  my $remote_ip = $self->r->connection->remote_ip . '.';
  my $is_audio = $self->supported_type ($self->r->content_type);
  my $check_addr = 1;
  my $denied_addr = 0;
  my @local_ips = $self->r->dir_config( "www_local_ips" );

    if (__MATCH_IP($remote_ip, qw{192.168.1.0/24})) {
       $denied_addr = 1;
    }

   if ($check_addr != $denied_addr) {
      $self->r->log_reason('File downloading is forbidden');
      return FORBIDDEN;

   } else {
     return DECLINED;

правельно ли это логически ?


Содержание

Сообщения в этом обсуждении
"неправельно, ашипка в генах ;-)"
Отправлено йцукенг , 13-Фев-06 18:11 
Ты бы хоть сказал, что должен делать этот скрипт....
С т.зр. синтакиса языка перл все вроде ок, но логическая правильность определяется тем, насколько скрипт соответствует поставленной задаче - а ее-то нет.

"неправельно, ашипка в генах ;-)"
Отправлено Adil_18 , 14-Фев-06 00:24 
>Ты бы хоть сказал, что должен делать этот скрипт....
>С т.зр. синтакиса языка перл все вроде ок, но логическая правильность определяется
>тем, насколько скрипт соответствует поставленной задаче - а ее-то нет.

это Apache::MP3
он должен делать следующие:
если клиент из под сети 192.168.1.0/24 то, он может скачивать файлы, а если нет, то

return FORBIDDEN;
ВСЕ счень просто, просто я не програмер, позтому очень прошу не бить сильно !!!!


"неправельно, ашипка в генах ;-)"
Отправлено йцукенг , 14-Фев-06 18:01 
>это Apache::MP3
> он должен делать следующие:
>если клиент из под сети 192.168.1.0/24 то, он может скачивать файлы, а
>если нет, то
Я не понял, чем тебя для этой цели не устраивает стандартная директива Files в апаче?

<Files ~ "\.(mp3)$">
   Order Deny,Allow
  Allow from 192.168.1.0/24
</Files>
Может, я ошибаюсь, но кажется, такая конструкция должна замечательно работать;-)



"неправельно, ашипка в генах ;-)"
Отправлено Adil_18 , 15-Фев-06 09:44 
>>это Apache::MP3
>> он должен делать следующие:
>>если клиент из под сети 192.168.1.0/24 то, он может скачивать файлы, а
>>если нет, то
>Я не понял, чем тебя для этой цели не устраивает стандартная директива
>Files в апаче?
>
> <Files ~ "\.(mp3)$">
>   Order Deny,Allow
>  Allow from 192.168.1.0/24
> </Files>
>Может, я ошибаюсь, но кажется, такая конструкция должна замечательно работать;-)


пробывал, в таком случае он для не подсети 192.168.1.0/24 в броузере *.mp3 файлы не отображает


"неправельно, ашипка в генах ;-)"
Отправлено chip , 15-Фев-06 12:52 
>пробывал, в таком случае он для не подсети 192.168.1.0/24 в броузере *.mp3
>файлы не отображает

Фигню не говорите. Только что специально проверил. RTFM!!!



"неправельно, ашипка в генах ;-)"
Отправлено Adil_18 , 15-Фев-06 13:01 
>>пробывал, в таком случае он для не подсети 192.168.1.0/24 в броузере *.mp3
>>файлы не отображает
>
>Фигню не говорите. Только что специально проверил. RTFM!!!

Ti voobshe vrubaeshsya o4em idet re4?

RTFM sebe skaji,    http://search.cpan.org/dist/Apache-MP3/

po4itay, mojet uznaesh mnogo o tom kak mod_perl rabotaet.


"неправельно, ашипка в генах ;-)"
Отправлено chip , 15-Фев-06 13:26 
>Ti voobshe vrubaeshsya o4em idet re4?

Ты вообще врубаешься о чем тебе отвечают? Читай по губам:

> Ты бы хоть сказал, что должен делать этот скрипт....

>>он должен делать следующие:
>>если клиент из под сети 192.168.1.0/24 то, он может скачивать файлы, а >>если нет, то

>>>Я не понял, чем тебя для этой цели не устраивает стандартная директива Files в апаче?

>>>>пробывал, в таком случае он для не подсети 192.168.1.0/24 в броузере *.mp3 файлы не отображает


"неправельно, ашипка в генах ;-)"
Отправлено Adil_18 , 15-Фев-06 13:40 
>>Ti voobshe vrubaeshsya o4em idet re4?
>
>Ты вообще врубаешься о чем тебе отвечают? Читай по губам:
>
>> Ты бы хоть сказал, что должен делать этот скрипт....
>
>>>он должен делать следующие:
>>>если клиент из под сети 192.168.1.0/24 то, он может скачивать файлы, а >>если нет, то
>
>>>>Я не понял, чем тебя для этой цели не устраивает стандартная директива Files в апаче?
>
>>>>>пробывал, в таком случае он для не подсети 192.168.1.0/24 в броузере *.mp3 файлы не отображает


4itay mod_perl i kak on generiruet potok na web mordu !!!!!!!!!
:)


"неправельно, ашипка в генах ;-)"
Отправлено Adil_18 , 15-Фев-06 09:46 
>>это Apache::MP3
>> он должен делать следующие:
>>если клиент из под сети 192.168.1.0/24 то, он может скачивать файлы, а
>>если нет, то
>Я не понял, чем тебя для этой цели не устраивает стандартная директива
>Files в апаче?
>
> <Files ~ "\.(mp3)$">
>   Order Deny,Allow
>  Allow from 192.168.1.0/24
> </Files>
>Может, я ошибаюсь, но кажется, такая конструкция должна замечательно работать;-)


а нужно, чтобы он отображал, но не давал скачевать


"а ты по-другому отображай;-)"
Отправлено йцукенг , 15-Фев-06 12:33 
>а нужно, чтобы он отображал, но не давал скачевать
ты отображай их не с помощью Directory Listing Апача,
а своим скриптом.
и, кстати, красивше будет;-)
PS. то, что апач не отображает файлы, для которых есть рестрикшн по IP в секции Files - для меня новость.
не знал...

"а ты по-другому отображай;-)"
Отправлено Adil_18 , 15-Фев-06 12:56 
>>а нужно, чтобы он отображал, но не давал скачевать
>ты отображай их не с помощью Directory Listing Апача,
>а своим скриптом.
>и, кстати, красивше будет;-)
>PS. то, что апач не отображает файлы, для которых есть рестрикшн по
>IP в секции Files - для меня новость.
>не знал...


а уже все работает, спасибо огромное всем!!!!!!!!!!
Я просто написав скрипт не стал его проверять, думая, что опять облом будет, забавно даже
вышло !!!! :)


"perl Нужен совет!!!!"
Отправлено idle , 13-Фев-06 22:14 
>Срочно!!!!!!!!!!!
>Нужен совет хорошего perl програмера
>
>  my $self = shift;
>  my $file = shift;
>  my $type = $self->r->content_type;
>  my $remote_ip = $self->r->connection->remote_ip . '.';
>  my $is_audio = $self->supported_type ($self->r->content_type);
>  my $check_addr = 1;
>  my $denied_addr = 0;
>  my @local_ips = $self->r->dir_config( "www_local_ips" );
>
>    if (__MATCH_IP($remote_ip, qw{192.168.1.0/24})) {
>       $denied_addr = 1;
>    }
>
>   if ($check_addr != $denied_addr) {
>      $self->r->log_reason('File downloading is forbidden');
>      return FORBIDDEN;
>
>   } else {
>     return DECLINED;
>
>правельно ли это логически ?
Нет неправильно, вот так писать:
my $self = shift;
my $file = shift;
уже ошибка.


"perl Нужен совет!!!!"
Отправлено idle , 14-Фев-06 16:36 
>Нет неправильно, вот так писать:
>my $self = shift;
>my $file = shift;
>уже ошибка.
Соврал. Нифига это не ошибка.
2Adil_18
Вы приводите кусок кода, из которого мало что понятно. Приведите полностью.

"perl Нужен совет!!!!"
Отправлено chip , 15-Фев-06 09:06 
>2Adil_18
>Вы приводите кусок кода, из которого мало что понятно. Приведите полностью.

ИМХО, тема немного оффтопична, учитывая то, что задача решается директивой Files конфигурационного файла apache. (см. пост выше йцукенг'a). Либо действительно должны быть веские обстоятельства для использования данного perl скрипта. 2Автору: необходимо помнить что решение с perl скриптом может резко снизить производительность решения.