ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

fsockopen()+proxy
  #1  
Старый 15.12.2008, 20:52
Аватар для preda1or
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию 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($fp10240);
$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..
 
Ответить с цитированием

  #2  
Старый 15.12.2008, 21:07
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

 
Ответить с цитированием

  #3  
Старый 15.12.2008, 21:09
Аватар для preda1or
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию

Цитата:
Сообщение от Pashkela  
Там GET/POST запросы = это не то.
 
Ответить с цитированием

  #4  
Старый 15.12.2008, 21:20
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

"Как дальше продолжить общение, через сокет (естественно через прокси), с pop3.mail.ru?"

конкретизируй задачу, ТС, а то туманно всё как-то
 
Ответить с цитированием

  #5  
Старый 15.12.2008, 21:22
Аватар для preda1or
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию

Нужно "общение" с POP3 сервером, через прокси, и всё это через сокеты.
 
Ответить с цитированием

  #6  
Старый 15.12.2008, 21:29
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

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($fp512);
    if (
substr($st03)!="+OK")
    {
        
fclose($fp);
        return(
NULL);
    }

    
$st="USER $username\n";
    if (
fwrite($fp$st)!=strlen($st))
    {
        
fclose($fp);
        return(
NULL);
    }

    
$st=fgets($fp512);
    if (
substr($st03)!="+OK")
    {
        
fclose($fp);
        return(
NULL);
    }

    
$st="PASS $password\n";
    if (
fwrite($fp$st)!=strlen($st))
    {
        
fclose($fp);
        return(
NULL);
    }

    
$st=fgets($fp512);
    
fclose($fp);
    if (
substr($st03)=="+OK")
        return(
true);
    else if (
substr($st04)=="+ERR")
        return(
false);
    else
        return(
NULL);
}
?>

Последний раз редактировалось Pashkela; 15.12.2008 в 21:33..
 
Ответить с цитированием

  #7  
Старый 15.12.2008, 21:31
Аватар для preda1or
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию

Как реализовать POP3 аутентификацию я знаю.
Мне нужно это пустить через прокси, с которым я общаюсь через fsockopen();

Я не знаю что посылать прокси серверу через сокет, чтобы он посылал и принимал команды от POP3 сервера.
 
Ответить с цитированием

  #8  
Старый 15.12.2008, 21:34
Аватар для cash$$$
cash$$$
Banned
Регистрация: 06.01.2008
Сообщений: 413
Провел на форуме:
1301036

Репутация: 1334
Отправить сообщение для cash$$$ с помощью ICQ
По умолчанию

Попробуй так

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($fpbase64_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); 
 
Ответить с цитированием

  #9  
Старый 15.12.2008, 21:35
Аватар для bons
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

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

после того как прокси сообщит, что соединение установлено ты можешь слать ему все как будто это и есть POP3 сервер. И соответственно принимать
 
Ответить с цитированием

  #10  
Старый 15.12.2008, 21:35
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

ну вот тебе проверка ICQ статуса через прокси, алгоритм должен быть одинаковый, мне лень проверять

PHP код:
Additional ICQ status request over proxy
<?php
function icq_uin($uin)
{
    if (! 
is_numeric($uin))
        return 
false;
    
$proxy_name 'proxy.mydomain.de';
    
$proxy_port 8080;
    
$proxy_user "";
    
$proxy_pass "";
    
$proxy_cont '';
    
$request_url "http://status.icq.com/online.gif?icq=$uin";

    
$proxy_fp fsockopen($proxy_name$proxy_port);
    if (!
$proxy_fp)
        return 
false;
    
fputs($proxy_fp"GET $request_url HTTP/1.0\r\nHost: $proxy_name\r\n");
    
fputs($proxy_fp"Proxy-Authorization: Basic "base64_encode ("$proxy_user:$proxy_pass")."\r\n\r\n");
    while(!
feof($proxy_fp)){
        
$proxy_cont .= fread($proxy_fp,4096);
    }
    
fclose($proxy_fp);
    
$proxy_cont substr($proxy_contstrpos($proxy_cont,"\r\n\r\n")+4);
    if (
strstr($proxy_cont'online1'))
        return 
'online';
    if (
strstr($proxy_cont'online0'))
        return 
'offline';
    if (
strstr($proxy_cont'online2'))
        return 
'disabled';
}
echo 
"User is ".icq_uin(123456789012345);
?>
Based on http://de2.php.net/manual/de/function.fopen.php#53090
Thanx
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ