
15.12.2008, 20:52
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
С нами:
9230726
Репутация:
242
|
|
fsockopen()+proxy
PHP код:
<?
set_time_limit(0);
$host = '189.47.129.62';
$port = '6588';
$fp = fsockopen("tcp://".$host, $port) or die ("ERROR: Could not connect to proxy server $host on port $port");
fputs($fp, "CONNECT pop3.mail.ru:110 HTTP/1.0\r\n\r\n");
$response = '';
$line = fgets($fp, 10240);
$response = $line;
echo $response;
fclose ($fp);
?>
Вернет:
Код:
X-Powered-By: PHP/5.2.0
Content-type: text/html
HTTP/1.1 200 Connection established
т.е. соединение установлено.
Как дальше продолжить общение, через сокет (естественно через прокси), с pop3.mail.ru?
P.S. Curl не предлогать
Последний раз редактировалось preda1or; 15.12.2008 в 21:01..
|
|
|

15.12.2008, 21:07
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
|
|
|

15.12.2008, 21:09
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
С нами:
9230726
Репутация:
242
|
|
Там GET/POST запросы = это не то.
|
|
|

15.12.2008, 21:20
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
"Как дальше продолжить общение, через сокет (естественно через прокси), с pop3.mail.ru?"
конкретизируй задачу, ТС, а то туманно всё как-то
|
|
|

15.12.2008, 21:22
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
С нами:
9230726
Репутация:
242
|
|
Нужно "общение" с POP3 сервером, через прокси, и всё это через сокеты.
|
|
|

15.12.2008, 21:29
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
http://ru2.php.net/fsockopen
CTRL+F "prox"
вроде там всё есть. Задачу ты конкретизировал конкретно  А вот пример работы с pop3
PHP код:
The following function performs pop3 authentication. Returns NULL on error, or true/false to indicate username/password matching:
$address is the hostname of the server and $ssl is a boolean that indicates whether an SSL connection is requested.
<?php
function pop3authCheck($username, $password, $address, $ssl)
{
if ($ssl)
$uri="ssl://$address:995";
else
$uri="tcp://$address:110";
$fp=fsockopen($uri);
if (!$fp)
return(NULL);
$st=fgets($fp, 512);
if (substr($st, 0, 3)!="+OK")
{
fclose($fp);
return(NULL);
}
$st="USER $username\n";
if (fwrite($fp, $st)!=strlen($st))
{
fclose($fp);
return(NULL);
}
$st=fgets($fp, 512);
if (substr($st, 0, 3)!="+OK")
{
fclose($fp);
return(NULL);
}
$st="PASS $password\n";
if (fwrite($fp, $st)!=strlen($st))
{
fclose($fp);
return(NULL);
}
$st=fgets($fp, 512);
fclose($fp);
if (substr($st, 0, 3)=="+OK")
return(true);
else if (substr($st, 0, 4)=="+ERR")
return(false);
else
return(NULL);
}
?>
Последний раз редактировалось Pashkela; 15.12.2008 в 21:33..
|
|
|

15.12.2008, 21:31
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
С нами:
9230726
Репутация:
242
|
|
Как реализовать POP3 аутентификацию я знаю.
Мне нужно это пустить через прокси, с которым я общаюсь через fsockopen();
Я не знаю что посылать прокси серверу через сокет, чтобы он посылал и принимал команды от POP3 сервера.
|
|
|

15.12.2008, 21:34
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 413
С нами:
9655526
Репутация:
1334
|
|
Попробуй так
PHP код:
$mailserver = "сервер";
$user = "логин";
$pass = "пасс";
$mailto = "мыло";
$host = '189.47.129.62';
$port = '6588';
$id=Base64_Encode("login:pass");
$fp = fsockopen($host, $port)
or die ("ERROR: Could not connect to proxy server $host on port $port");
fputs($fp, "CONNECT $mailserver:25 HTTP/1.0 \r\n");
fputs($fp, "Proxy-Authorization: Basic $id\r\nConnection: close\r\n\r\n");
fputs($fp, "EHLO nm.ru\r\n");
fputs($fp, "AUTH LOGIN\r\n");
fputs($fp, base64_encode($user)."\r\n".base64_encode($pass)."\r\n");
fputs($fp, "MAIL FROM: $user\r\n");
fputs($fp, "RCPT TO: $mailto\r\n");
fputs($fp, "DATA\r\n");
fputs($fp, "Subject: bla\r\n");
fputs($fp, "From: логин <login@nm.ru>\r\n\r\n");
fputs($fp, "text.\r\n\r\n");
fputs($fp, ".\r\n");
echo fread($fp,1024)."<br>";
fputs($fp, "QUIT\r\n");
/*
*/
fclose ($fp);
|
|
|

15.12.2008, 21:35
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами:
9679872
Репутация:
347
|
|
после того как прокси сообщит, что соединение установлено ты можешь слать ему все как будто это и есть POP3 сервер. И соответственно принимать
|
|
|

15.12.2008, 21:40
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
С нами:
9230726
Репутация:
242
|
|
Сообщение от bons
после того как прокси сообщит, что соединение установлено ты можешь слать ему все как будто это и есть POP3 сервер. И соответственно принимать
PHP код:
<?
set_time_limit(0);
$host = '213.55.69.124';
$port = '6588'; // 4480 is the default HTTP proxy port
$fp = fsockopen("tcp://".$host, $port) or die ("ERROR: Could not connect to proxy server $host on port $port");
fputs($fp, "CONNECT pop3.mail.ru:110 HTTP/1.0\r\n\r\n");
$response = '';
$line = fgets($fp, 10240);
$response = $line;
echo $response;
fputs($fp,"USER login\r\n");
$line = fgets($fp, 10240);
$response = $line;
echo $response;
fclose ($fp);
?>
Не работает...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|