[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация в сокетах.
jeka1202
Здравствуйте!

Такая ситуация:

Есть консольная программа которая позволяет подсоединяться к ней через сокет.
Подключиться я смог без проблем, но вот для того чтобы отправлять ей какие либо команды на выполнение не получится, пока не авторизируешься через этот самый сокет.
Под авторизацией подразумевается просто отправка пароля на сокет.

Подскажите как это правильно сделать.
Xpund
Протокол какой?
Можешь ещё название игрухи добавить)

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
jeka1202
Протокол TCP.

В фразе "Можешь ещё название игрухи добавить)" увидел тонкий троллинг)))))))))

Игра Freelancer, консольная программа FLHook.
Hello
jeka1202, необходимо узнать в каком формате она принимает пароль.
  • Спроси документацию у разработчиков
  • Посмотри исходники игры
  • Собрать пакеты снифером, и докадаться самому


_____________
VPS от 5$, первые 2 месяца - бесплатно.
jeka1202
Цитата (Hello @ 13.04.2015 - 14:22)
jeka1202, необходимо узнать в каком формате она принимает пароль.
  • Спроси документацию у разработчиков
  • Посмотри исходники игры
  • Собрать пакеты снифером, и докадаться самому

в самом обычном текстовом виде.
Hello
jeka1202
тогда в чём проблема?

_____________
VPS от 5$, первые 2 месяца - бесплатно.
jeka1202
Цитата (Hello @ 13.04.2015 - 17:36)
jeka1202
тогда в чём проблема?

проблема в том что я не могу понять как отправить в сокет что либо.

Код у меня такой(взятый из интернетов):

<?php
$fp = fsockopen("127.0.0.1", 1919, $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br>\n";
} else {
fwrite($fp,"\n");
echo fread($fp, 64);
fclose($fp);
}
?>


В ответ я получаю:

Welcome to FLHack, please authenticate


Типо просит авторизацию в виде пароля, например, test.

Как ему этот "пароль" отправить??

Знаю что в ответ должно прийти:

Welcome to FLHack, please authenticate.. OK..
Hello
Цитата (jeka1202 @ 13.04.2015 - 17:39)
Как ему этот "пароль" отправить??

<?php
$fp = fsockopen("127.0.0.1", 1919, $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br>\n";
} else {
fwrite($fp,"\n");
echo fread($fp, 64);
fwrite($fp,"Мой мега пароль\n");

fclose($fp);
}


_____________
VPS от 5$, первые 2 месяца - бесплатно.
AllesKlar
кусок кода из рабочего проекта, может пригодится ТС или гугло-боту
Авторизация в Roundcobe
       if ($method == "POST") {
$request =
"POST ".$path." HTTP/1.1\r\n"
. "Host: ".$_SERVER['HTTP_HOST']."\r\n"
. "User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n"
. "Content-Type: application/x-www-form-urlencoded\r\n"
. "Content-Length: ". strlen($postData) ."\r\n"
. $cookies
. "Connection: close\r\n\r\n"

. $postData;
}

// Make GET
else {
$request =
"GET ".$path." HTTP/1.1\r\n"
. "Host: ".$_SERVER['HTTP_HOST']."\r\n"
. "User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n"
. $cookies
. "Connection: close\r\n\r\n";
}

$fp = fsockopen($host, $port);

if (!$fp) {
$this->addDebug("UNABLE TO OPEN SOCKET", "Could not open socket for $host at port $port");
throw new RoundcubeLoginException("Could not open socket for $host at port $port");
}

// Request
$this->addDebug("REQUEST", $request);
fputs($fp, $request);

while (!feof($fp)) {
$line = fgets($fp, 4096);

// Not found
if (preg_match('/^HTTP\/1\.\d\s+404\s+/',$line))
throw new RoundcubeLoginException("No Roundcube installation found at '$path'");

// Got session ID!
if (preg_match('/^Set-Cookie:\s*(.+roundcube_sessid=([^;]+);.+)$/i',$line,$match)) {
header($line, false);

$this->addDebug("GOT SESSION ID", "New session ID: '$match[2]'.");
$this->rcSessionID = $match[2];
}

// Got sessauth
if (preg_match('/^Set-Cookie:.+roundcube_sessauth=([^;]+);/i',$line,$match)) {
header($line, false);

$this->addDebug("GOT SESSION AUTH", "New session auth: '$match[1]'.");
$this->rcSessionAuthi = $match[1];
}

// Request token (since Roundcube 0.5.1)
if (preg_match('/"request_token":"([^"]+)",/mi', $response, $m))
$this->lastToken = $m[1];

if (preg_match('/<input.+name="_token".+value="([^"]+)"/mi', $response, $m))
$this->lastToken = $m[1]; // override previous token (if this one exists!)

$response .= $line;
}


_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.