Запрос к скрипту идёт следующий Code: GET http://***/cgi-bin/user_info.cgi HTTP/1.0 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* Accept-Language: ru-ru Authorization: Basic eHh4QHh4eDoxMjM0NTY= User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709)) Host: xxx.xxx.xxx.xxx Proxy-Connection: Keep-Alive скрипт на perl Code: #!с:/perl/bin/perl.exe print "Content-type: text/html\n\n"; foreach $key( keys( %ENV ) ) { print "$key - $ENV{ $key } <br>\n"; } Выдает следующий результат Code: CHARSET_HTTP_METHOD - http:// QUERY_STRING - HTTP_ACCEPT_LANGUAGE - ru-ru SERVER_PROTOCOL - HTTP/1.0 CHARSET_SERVER_PORT - 80 HTTP_CONNECTION - Keep-Alive SERVER_SIGNATURE - Apache/1.3.3 Server at xxx.xxx.xxx.xxx Port 80 REMOTE_PORT - 1089 HTTP_ACCEPT - image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* GATEWAY_INTERFACE - CGI/1.1 HTTP_HOST - xxx.xxx.xxx.xxx SERVER_SOFTWARE - Apache/1.3.3 (Unix) PHP/3.0.5 rus/PL27.3 SERVER_ADMIN - www@localhost REMOTE_USER - xxx@xxx REMOTE_ADDR - xxx.xxx.xxx.xxx SCRIPT_NAME - /home/cgi-bin/user_info.cgi SERVER_NAME - xxx.xxx.xxx.xxx DOCUMENT_ROOT - /usr/local/apache/htdocs REQUEST_URI - /home/cgi-bin/user_info.cgi REQUEST_METHOD - GET CHARSET - windows-1251 SCRIPT_FILENAME - /usr/local/apache/htdocs/home/cgi-bin/user_info.cgi SOURCE_CHARSET - koi8-r PATH - /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin CHARSET_SERVER_NAME - stats.ru:80 AUTH_TYPE - Basic SERVER_PORT - 80 так и не пойму а где же пароль от Authorization: Basic как его получить?
Authorization это не переменная окружения, а заголовок HTTP запроса Получить его можно через LWP или вынимать регулярками если через сокеты работаешь Я работаю так: 1. запрашиваю страницу 2. проверяю необходимость аутентификации Code: if(exists $res->{_headers}->{'www-authenticate'}) { ... } 3. вынимаю название реалма для аутентификации Code: $res->{_headers}->{'www-authenticate'}=~/basic realm=\"(.+?)\"/i || return 0; my $realm=$1; 3. отправляю запрос с аутенфикацией Code: $ua->credentials($target.":80",$realm,login=>'password'); $res=$ua->get($target);
меня наверное неправильно поняли. Я запрашиваю страницу, на ней Я ввожу имя и пароль нажимаю ОК теперь скрипт должен получить это имя и пароль и записать в файл(это не важно, мне нужно их хотябы получить) Я просто практически не разбираюсь в Perl