Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SOCK_RAW, программирование под Windows 
:(
    Опции темы
SATYR
Дата 16.10.2005, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



Народ подскажите можно ли в ActivePerl под Windows работать с Raw-сокетами ? Если можно то пожалуста приведите пример .
И еще вопросец. Для работы с транспортными протоколами (tcp, udp) нужно работать через Raw-сокеты либо как-то по другому?
PM MAIL   Вверх
sharq
Дата 16.10.2005, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



SATYR да можно.
Есть модуль Socket и производный IO::Socket, которые входят в стандартную поставку ActiveState.
Типы сокетов, которые поддерживаются модулем:
Цитата

SOCK_STREAM  A continuous stream of data
SOCK_DGRAM  Individual packets of data
SOCK_RAW  Access to internal protocols and interfaces

Протоколы, которые поддерживает модуль:
Цитата

tcp  Transmission Control Protocol for stream sockets
udp  User Datagram Protocol for datagram sockets
icmp  Internet Control Message Protocol
raw  Creates IP packets manually

Протоколы TCP и UDP непосредственно поддерживаются сокетами в перле, а остальные нет.
Если тебе нужно работать с TCP или UDP, то используй эти модули.
Для работы с протоколами ICMP и raw используют модули Net::ICMP и Net::RawIP соответственно.

Вот тебе пример работы с модулем Net::RawIP из документации:
Код

  use Net::RawIP;
  $a = new Net::RawIP;
  $a->set({ip => {saddr => 'my.target.lan',daddr => 'my.target.lan'},
           tcp => {source => 139,dest => 139,psh => 1, syn => 1}});
  $a->send;
  $a->ethnew("eth0");
  $a->ethset(source => 'my.target.lan',dest =>'my.target.lan');    
  $a->ethsend;
  $p = $a->pcapinit("eth0","dst port 21",1500,30);
  $f = dump_open($p,"/my/home/log");
  loop $p,10,\&dump,$f;


Также есть модули Net::Packet::RAW, Net::Whois::Raw и др.
Можно посмотреть, какие есть еще, на CPAN.

Для установки модулей можешь почитать статью "Установка perl-модулей", скачать здесь.

smile

Это сообщение отредактировал(а) sharq - 16.10.2005, 23:19


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
SATYR
Дата 17.10.2005, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



[quote]Можно посмотреть, какие есть еще, на CPAN.
Это где ?
Добавлено @ 10:21
Нашел )
PM MAIL   Вверх
sharq
Дата 17.10.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



SATYR ты сильно не замарачивайся с модулями, тебе в полне хватит Socket и IO::Socket.

Что нужно сделать тебе?

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
SATYR
Дата 17.10.2005, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



Хочу програмно попробоать сформировать tcp пакет
PM MAIL   Вверх
sharq
Дата 17.10.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



SATYR тебе полезна будет книжка Network Programming with Perl By Lincoln D. Stein.



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
SATYR
Дата 17.10.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



в электронном виде есть где нибудь?
PM MAIL   Вверх
sharq
Дата 17.10.2005, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



SATYR качать здесь, смотреть здесь.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
SATYR
Дата 17.10.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



sharq, а приведенный выше пример кода для Перл под винду?
PM MAIL   Вверх
sharq
Дата 17.10.2005, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



SATYR perldoc Net::RawIP.

Не заметил,
Цитата
NOTE: Ethernet related methods are implemented on Linux and *BSD only
.

smile

Это сообщение отредактировал(а) sharq - 17.10.2005, 15:10


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
SATYR
Дата 17.10.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 24.5.2005

Репутация: нет
Всего: нет



Почитал статейки с описанием примеров работы с RawIP. Это то что мне надо smile , но вопрос в том есть ли какой-нить его эквивалент под винду?
PM MAIL   Вверх
sharq
Дата 17.10.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



Попробуй сам написать smile



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1358 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.