Forum Webscript.Ru

Программирование => Perl => Тема начата: Kwazar от 23 Мая 2003, 11:17:42

Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 11:17:42
Как включить в http заголовок запроса ip.
HTTP заголовок формуриеться посредством сокетов:


#!/usr/bin/perl
use Socket;
$AF_INET=2;
$SOCK_STREAM=1;
$protocol=(getprotobyname(\'tcp\'))[2];
$end="\\015\\012";
$site="localhost";# Адрес хоста без http://
$port=80;
$addr=(gethostbyname($site))[4];
$addrs=pack (\'S n a4 x8\', $AF_INET, $port, $addr);
$cur=\'/a.jpg\';#имя файла на хосте Например /cgi-bin/cookie.cgi


{print "Content-Type: text/html\\n\\n";

if (!(socket(LOAD,$AF_INET,SOCK_STREAM,$protocol))){

print "Невозможно создать сокет!"; exit;}

if (!(connect(LOAD, $addrs))){print "Невозможно соединиться!"; exit;}

select(LOAD);
$|=1;
select(STDOUT);

print LOAD "GET $cur HTTP/1.0$end";
print LOAD "Content-Type: application/x-www-form-urlencoded$end";
print LOAD "Accept: text/html$end";
print LOAD "Accept: image/jpeg$end";
print LOAD "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)$end";
print LOAD "Accept: image/gif$end";
print LOAD "Accept: image/x-xbitmap$end";
print LOAD "Referer: http://www.host/$end";
print LOAD "Accept: image/pjpeg$end";
print LOAD "Cookie: nik=uuu; passwd=e789201b865999990c17bf5bc9c15$end";
print LOAD "Host: $site$end";
print LOAD "Authorization: Basic $encoded$end";
print LOAD "$end$end";
@str=;


print @str;


close (LOAD);
}
Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 11:19:01
Как ip выглядет в http заголовке?
Название: Сокеты и ip
Отправлено: NeoNox от 23 Мая 2003, 13:25:11
Читать rfc2616
Hint: Посмотри в perldoc IO::Socket;
Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 14:16:07
NeoNox в перлдоке нету.
Название: Сокеты и ip
Отправлено: NeoNox от 23 Мая 2003, 14:29:52
perl -MCPAN -e shell;
cpan> install  

http://www.perldoc.com/perl5.8.0/lib/IO/Socket.html
Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 15:25:34
NeoNox, спасибо
Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 15:35:58
Но там тоже нету ничего.
В какой переменной окружения храниться Ip в HTTP заголовке?
Название: Сокеты и ip
Отправлено: NeoNox от 23 Мая 2003, 15:45:22
До http://www.perldoc.com/perl5.8.0/lib/IO/Socket/INET.html ты не дошел?
Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 15:54:40
NeoNox, дошел, но мне то, но не совсем в таком виде нужно...
Еще раз спасибо за уделение внимания моей кромной персоне
Название: Сокеты и ip
Отправлено: NeoNox от 23 Мая 2003, 16:21:45
Ну я тогда не понял вопрос.
Чей IP тебе нужен, клиента или сервера или еще какой?
Название: Сокеты и ip
Отправлено: Kwazar от 23 Мая 2003, 16:49:32
NeoNox, см. пример.
там подставляется все, кроме Ip. А нужно с ним...
Название: Сокеты и ip
Отправлено: NeoNox от 23 Мая 2003, 16:56:09
Kwazar AFAIK сервер сам возьмет твой IP без твоего указания ;)
Название: Сокеты и ip
Отправлено: Макс от 23 Мая 2003, 18:04:47
может я чего-то и не понял но в HTTP-заголовках IP не указывается. Нет этого в RFC (да и не нужно). IP определяется еще во время соединения между клиентом и сервером, до того как начнется работа по HTTP-протоколу.
Название: Сокеты и ip
Отправлено: Kwazar от 24 Мая 2003, 13:33:13
NeoNox, Макс, такгда как скрипты статистики выдирают ip? Где-то он должен же передаваться... И если сервер виртуальный, и скрипт, который определяет ip клиента, написан на Perl, к примеру и берет его из переменной окружения, то как его подменить?
Название: Сокеты и ip
Отправлено: Alone от 24 Мая 2003, 14:45:18
Цитировать
Kwazar:
такгда как скрипты статистики выдирают ip

Из переменных окружения ;)
Цитировать
Kwazar:
то как его подменить

ооо целая наука... сведенная(в основном) к высоко(full) ананимным проксям и соксам :)
Название: Сокеты и ip
Отправлено: Kwazar от 24 Мая 2003, 19:00:51
Alone,  ага, вот только не посылать же мне запросы через прокси... Хотя в принципе это выход...