HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Perl] Модуль Socket. Не правильно работает ф-я connect
  #1  
Старый 23.11.2009, 23:09
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

Репутация: 0
По умолчанию [Perl] Модуль Socket. Не правильно работает ф-я connect

Есть такой скрипт:
Код:
#!/usr/local/bin/perl -w

print "Content-Type: text/html\n\n";
print "Соединяемся при помощи модуля Socket<br>";
use Socket; #Используем модуль Socket

$port = 10000;
$host = "4.88.167.248";
socket( SOCKET, PF_INET, SOCK_STREAM, (getprotobyname('tcp'))); # Создаём сокет
my $socket_addr = sockaddr_in( $port, inet_aton($host) ); # адрес сокета
if (connect( SOCKET, $socket_addr)) {$result = 'Удачное соединение'}
else {$result = 'Не удалось соединиться'}
print "$result";
close SOCKET;
Проблема в том, что connect всегда возвращает истину, независимо от того получилось соединиться или не получилось.
Кто-нибудь сталкивался с такой проблемой?
 
Ответить с цитированием

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

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

У Вас, видимо, перл неправильный
У меня все ок:
Код:
#!/usr/bin/perl
use warnings;
use strict;
use Socket;
my($host,$port) = ('127.0.0.1',8697);
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
my $iaddr = inet_aton($host);
my $paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr) or die 'Cannot connect';
Код:
goofy:~ $ perl ./sock.pl
Cannot connect at ./sock.pl line 10.
 
Ответить с цитированием

  #3  
Старый 24.11.2009, 17:29
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

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

Цитата:
Сообщение от biophreak  
У Вас, видимо, перл неправильный
Я впринцепе так и думал, пробовал разные версии Perl (5.10.1 и 5.8.9) на обоих такая проблема.
Может быть даже дело в моей системе.

Можете скинуть ссылку, от куда вы брали perl?
 
Ответить с цитированием

  #4  
Старый 25.11.2009, 10:17
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

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

Э, ну я его ставил еще когда систему устанавливал, так что с репозитария дебиана.
 
Ответить с цитированием

  #5  
Старый 25.11.2009, 10:18
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

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

Кстати, а мой пример у Вас работает?
 
Ответить с цитированием

  #6  
Старый 25.11.2009, 13:38
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

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

тоже выпоняется без ошибки
 
Ответить с цитированием

  #7  
Старый 25.11.2009, 16:54
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

FunkyBoy, попробуйте заюзать IO::Socket::INET, например, так:
Код:
#!/usr/bin/perl
use warnings;
use strict;
use IO::Socket::INET;

my ($host, $port) = ('127.0.0.1', 8697);
my $sock = IO::Socket::INET->new (
  'PeerAddr' => $host,
  'PeerPort' => $port,
  'Proto' => 'tcp',
  'Timeout' => 20
) or die "Connection error: $@\n";
print "Connected\n";
Что выведет скрипт?
 
Ответить с цитированием

  #8  
Старый 25.11.2009, 23:57
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

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

Цитата:
Сообщение от krypt3r  
Что выведет скрипт?
Скрипт выдаёт: Connected
Модуль IO::Socket::INET сам использует Socket, по этому такой результат.
 
Ответить с цитированием

  #9  
Старый 26.11.2009, 07:50
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Странный у вас какой-то перл
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
md5 Badak Криптография, расшифровка хешей 12 08.08.2009 21:41



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


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




ANTICHAT.XYZ