ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Работа с сокетами,мать их))
  #1  
Старый 11.07.2008, 14:24
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию Работа с сокетами,мать их))

Вот самый обычный сокед:

#!usr/bin/perl

use strict; use Socket;
use constant DEFAULT_ADDR => '127.0.0.1';
use constant PORT => 21;
use constant IPPROTO_TCP => 6;

my $my_addr = shift || DEFAULT_ADDR;
my $upak_addr = inet_aton($my_addr);
my $dest = sockaddr_in(PORT,$upak_addr);
socket(SOCK,PF_INET,SOCK_STREAM,IPPROTO_TCP) or
die "Can`t open this socket!";
connect(SOCK,$dest);
print <SOCK>;

Если соединение успешно,то просто выводит содержимое дескриптора сокета)).Но вот что можно запросить с помощью сокетов(какую информацию),и каким функциями пользоваться,кроме read().Или может есть у кого-то примеры работы на перле с сокетами ?
 
Ответить с цитированием

  #2  
Старый 11.07.2008, 14:40
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Запросить - хм...имхо доволоьно странная постановка вопроса...запросить можно толькто то, что может отдать сервак )
Кроме read() - sysread()
примеры - http://phreak.nkoort.ru/source - пример работы с асечным серваком.
 
Ответить с цитированием

  #3  
Старый 11.07.2008, 14:56
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

пример , тупо читает страницу
Код:
#!"C:\xampp\perl\bin\perl.exe"

use Socket;

$port="80";


socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));


$sockaddr_in = 'S n a4 x8';


$in_addr = (gethostbyname("localhost"))[4];

$server_addr = pack( $sockaddr_in, AF_INET, $port, $in_addr );

connect(SOCK, $server_addr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);

@data=<SOCK>;

close(SOCK);


print @data;
exit(0);
 
Ответить с цитированием

  #4  
Старый 11.07.2008, 17:55
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию

Круто)))).Спасибо вам ребятки ^___________^.А что означают ваот эти две строчки:

$in_addr = (gethostbyname("localhost"))[4];

$server_addr = pack( $sockaddr_in, AF_INET, $port, $in_addr );

Остальное вроде понятно=).А хотя... exit(0) это означает немедленный выход ?Смахивает на sleep() )

ЗЫ: Только у меня страницу не выводит...локалхост.А по идее должен разве?)


оО,ты забыл в скрипте поставить директиву my,тобишь глобальные переменные интерпретатор потребывал =_=,и вот насчёт директивы use strict не знаю,мне помогла)).Терь всё работает,ещё раз спасибо )))))

Последний раз редактировалось Велемир; 11.07.2008 в 18:06..
 
Ответить с цитированием

  #5  
Старый 11.07.2008, 18:10
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

Код:
$in_addr = (gethostbyname("localhost"))[4];
узнаем айпи получателя по домену (вместо localhost может быть например google.com) , ай пи будет 4м параметром , возвращенным функцией gethostbyname ,который мы и поместим в переменную $in_addr

Код:
$sockaddr_in = 'S n a4 x8';
Задаем шаблон для упаковки
Код:
$server_addr = pack( $sockaddr_in, AF_INET, $port, $in_addr );
и упаковываем все наши данные согласно шаблону в двоичную структуру , которая необходима функции connect для установки соединения...

надеюсь понятно обьяснил

ps: а exit(0) обычный выход из программы

added:
замени localhost на google.com
а в send поправь на
send (SOCK, "GET / HTTP/1.0\nhost:google.com\n\n", 0);
и увидишь результат

Последний раз редактировалось Jes; 11.07.2008 в 18:18.. Причина: added:
 
Ответить с цитированием

  #6  
Старый 11.07.2008, 19:13
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию

Вроде всё понял.Думаю вот,че с этими сокетами делать )))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мультимедийные Обучающие Курсы TeachPro Java VenTeL ПО для Web разработчика 8 24.04.2008 15:38
Работа на дому xmensuperman О Работе 5 11.01.2008 20:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ