Автор Тема: Как послать IP пакет?  (Прочитано 3949 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Как послать IP пакет?
« : 21 Января 2002, 16:54:24 »
Првет всем!
Подскажите пожалуйста, как можно отправить IP-пакет на Перле, в котором содержится несколько параметром, например UserName, Password и т.д. и получить какой-нибудь ответ.
Заранее большое спасибо.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как послать IP пакет?
« Ответ #1 : 21 Января 2002, 17:18:31 »
Или я не понял, или одно из двух...
При чем здесь пакет?
Тебе нужно из формы отправить скрипту параметры и получить, в зависимости от них, какой нибудь результат?
The documentations is your friend

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Как послать IP пакет?
« Ответ #2 : 21 Января 2002, 17:26:51 »
Цитировать
Или я не понял, или одно из двух...
При чем здесь пакет?
Тебе нужно из формы отправить скрипту параметры и получить, в зависимости от них, какой нибудь результат?


Нет, речь идет совсем не о CGI.  
Есть один модуль - NET::RawIP, но он помоему может только потвевожить сервер, но не передать ему информацию и получить ответ (может я и ошибаюсь).
Может быть как-то через сокеты можно реалировать?

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
э
« Ответ #3 : 21 Января 2002, 17:57:31 »
Цитировать
Нет, речь идет совсем не о CGI.

сформулируем вопрос NeoNox иначе: тебе надо что-то передать удаленному серверу и получить какой-нибудь ответ?
Или тебе нужно имеено работать с IP пакетами?
Если что-то передать/получить, уточни что хочешь получить...
 в исканиях.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
Как послать IP пакет?
« Ответ #4 : 21 Января 2002, 18:17:01 »
Цитировать
сформулируем вопрос NeoNox иначе: тебе надо что-то передать удаленному серверу и получить какой-нибудь ответ?
Или тебе нужно имеено работать с IP пакетами?
Если что-то передать/получить, уточни что хочешь получить...

Сформулирую свой вопрос иначе. Извините, я некомпетентен в этом вопросе, поэтому если начинаю говорить какую-нибудь чушь - остановите меня пожалуйста, а ещё лучше исправьте.
Мне нужно сформировать IP-пакет. Но ведь может содержать информацию? Так вот я бы хотел написать что-нибудь внутри пакета, чтобы сервер проанализировал это и отправил ответ.
Возможно ли такое?

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как послать IP пакет?
« Ответ #5 : 21 Января 2002, 20:30:31 »
Znachit tak:
RAW_IP - tebe nikto ne dast slat\' (toko ROOT mozhet)

Dlya prostih smertnih est\' 2 protokola - TCP i UDP.
Ti mozhesh spokojno poslat\' kak TCP tak i UDP paketi.

Raznica - TCP - eto s podtverzhdewniem. T.e oni tebe garantiruyut , chto poslannoe
toboj ne poteryaetsya po doroge. UDP - ne garantiruet.

TCP - eto skoree soedinenie, chem paket. T.e ti otkrivaesh soedinenie - shlesh chto nado,
poluchaesh chto nado, zakrivaesh soedinenie.  Skol\'ko pri etom ujdet paketov i skol\'ko iz nih povtorno pereshletsya pri potere - tebya ne volnuet.

UDP - tebe nikto ne obyazan otvechat\' i dazhe soobschat\' - prishel on ili net poluchatelyu.
(a esli server tebe otvet v UDP poshlet - tozhe ono mozhet poteryat\'sya)

Voobschem - RTFM :)  mozhno na CITFORUM - tam est\' po setyam chto-to (po TCP/IP)
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн Боря Елкин

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://webmetr.pips.ru
Как послать IP пакет?
« Ответ #6 : 22 Января 2002, 10:34:06 »
Мне в свое время пришлось связывать OS/2 и Linux. Для этих вещей я как раз и использовал обмен через TCP/IP.

Пример взял из книги Perl Cookbook (которая с бараном).
Вот привожу его ниже. (надеюсь это то, что тебе нужно)

17.2. Writing a TCP Server
Problem
You want to write a server that waits for clients to connect over the network to a particular port.

Solution
This recipe assumes you\'re using the Internet to communicate. For TCP-like communication within a single Unix machine, see Recipe 17.6.

Use the standard (as of 5.004) IO::Socket::INET class:

use IO::Socket;

$server = IO::Socket::INET->new(LocalPort => $server_port,
                                Type      => SOCK_STREAM,
                                Reuse     => 1,
                                Listen    => 10 )   # or SOMAXCONN
    or die "Couldn\'t be a tcp server on port $server_port : $@\\n";

while ($client = $server->accept()) {
    # $client is the new connection
}

close($server);
Or, craft it by hand for better control:

use Socket;

# make the socket
socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname(\'tcp\'));

# so we can restart our server quickly
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1);

# build up my socket address
$my_addr = sockaddr_in($server_port, INADDR_ANY);
bind(SERVER, $my_addr)
    or die "Couldn\'t bind to port $server_port : $!\\n";

# establish a queue for incoming connections
listen(SERVER, SOMAXCONN)
    or die "Couldn\'t listen on port $server_port : $!\\n";

# accept and process connections
while (accept(CLIENT, SERVER)) {
    # do something with CLIENT
}

close(SERVER);


17.1. Writing a TCP Client
Problem
You want to connect to a socket on a remote machine.

Solution
This solution assumes you\'re using the Internet to communicate. For TCP-like communication within a single machine, see Recipe 17.6.

Either use the standard (as of 5.004) IO::Socket::INET class:

use IO::Socket;

$socket = IO::Socket::INET->new(PeerAddr => $remote_host,
                                PeerPort => $remote_port,
                                Proto    => "tcp",
                                Type     => SOCK_STREAM)
    or die "Couldn\'t connect to $remote_host:$remote_port : $@\\n";

# ... do something with the socket
print $socket "Why don\'t you call me anymore?\\n";

$answer = <$socket>;

# and terminate the connection when we\'re done
close($socket);
or create a socket by hand for better control:

use Socket;

# create a socket
socket(TO_SERVER, PF_INET, SOCK_STREAM, getprotobyname(\'tcp\'));

# build the address of the remote machine
$internet_addr = inet_aton($remote_host)
    or die "Couldn\'t convert $remote_host into an Internet address: $!\\n";
$paddr = sockaddr_in($remote_port, $internet_addr);

# connect
connect(TO_SERVER, $paddr)
    or die "Couldn\'t connect to $remote_host:$remote_port : $!\\n";

# ... do something with the socket
print TO_SERVER "Why don\'t you call me anymore?\\n";

# and terminate the connection when we\'re done
close(TO_SERVER);

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28