сокеты
1.
3DwEp (16.09.2010 / 15:43)
Помогите. никак не пойму. Мне нужно отправить с помощью сокетов:
PRIVMSG 0 :test
на
адрес: 95.172.133.164
порт: 6667
============
покажите на примере, как это сделать
2.
Александр (17.09.2010 / 10:05)
<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$msg = "PRIVMSG 0 :test";
$len = strlen($msg);
socket_sendto($sock, $msg, $len, 0, '95.172.133.164', 6667);
socket_close($sock);
?>
3.
ктулху (17.09.2010 / 10:41)
А порт то TCP или UDP?
Можно ещё так:
<?php
$text='PRIVMSG 0 :test';
$fp=fsockopen("95.172.133.164", 6667);
fputs($fp, $text);
fclose($fp);
?>
Но это только отправка, без чтения ответа
4.
delete (17.09.2010 / 11:50)
POST
<?php
/*
*передача данных методом POST через сокет
*автор: nc_soft
*25.08.07
*/
//сайт
$host='site.ru';
//скрипт-обработчик
$path='/index.php';
//данные
$data='a=1&b=2';
//открываем сокет
$fp = @fsockopen("tcp://".$host, 80, $errno, $errstr, 10);
if (!$fp)
{
die($errstr.':'.$errno);
}
else
{
$out = "POST $path HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
//указываем что это пост данные
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
//указываем количество байт
$out .= "Content-Length: ". strlen($data) ."\r\n";
$out .= "Connection: Close\r\n\r\n";
//посылаем данные
fwrite($fp, $out.$data);
$headers='';
//читаем заголовки
while ($str = trim(fgets($fp, 4096)))
$headers .= "$str\n";
$body='';
//читаем ответ
while (!feof($fp))
$body.= fgets($fp, 4096);
//закрываем сокет
fclose($fp);
}
//выводим данные
echo $headers.'<hr/>'.$body;
?>
GET
<?php
/*
*передача данных методом GET через сокет
*автор: nc_soft
*25.08.07
*/
//сайт
$host='wen.ru';
//скрипт-обработчик (получим главную страницу)
$path='/';
//открываем сокет
$fp = @fsockopen("tcp://".$host, 80, $errno, $errstr, 10);
if (!$fp)
{
die($errstr.':'.$errno);
}
else
{
$out = "GET $path HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
//посылаем данные
fwrite($fp, $out.$data);
$headers='';
//читаем заголовки
while ($str = trim(fgets($fp, 4096)))
$headers .= "$str\n";
$body='';
//читаем ответ
while (!feof($fp))
$body.= fgets($fp, 4096);
//закрываем сокет
fclose($fp);
}
//выводим данные
echo $headers.'<hr/>'.$body;
?>
5.
delete (17.09.2010 / 11:55)
<?php
/*
*подключение к сайту через прокси с использованием socket
*автор: nc_soft
*25.08.07
*/
//используем прокси
$proxy='165.228.130.10';
//порт для прокси
$port='3128';
//сайт
$host='wen.ru';
//запрашиваемая страница
$path='/';
//открываем сокет
$fp = fsockopen("tcp://".$proxy, $port, $errno, $errstr, 10);
if (!$fp)
{
die("$errstr:$errno");
}
else
{
//формируем заголовки
$out = "GET http://$host$path HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n";
$out .= "\r\n";
//отправляем запрос
fwrite($fp, $out);
//читаем ответ
while (!feof($fp))
{
echo fgets($fp, 1024);
}
//закрываем сокет
fclose($fp);
}
/*
на момент написания snippet этот проксик работал, обычно бесплатные прокси живут не долго,
поэтому для теста надо найти рабочий
*/
?>
из всего что выложил, можно собрать что тебе нужно.
6.
ктулху (17.09.2010 / 12:09)
5, не совсем. Ему не HTTP пакет надо отправлять. А просто строку на определённый TCP\UDP порт
7.
delete (17.09.2010 / 12:14)
6.
ShiftBHT_есть_чо7, ну там через TCP и передается
в принципе то что я написал одно и тоже что выложили выше, ток с заголовками для ответа
там где указан хост, там можно прописать ip адрес че он дал, там где 80, эт порт, тож самое пишим его порт.
8.
3DwEp (17.09.2010 / 12:48)
2,3, а как ответ читать?
9.
3DwEp (17.09.2010 / 12:52)
вообщем вот я через сниффер посмотрел, мне нужно сделать подключение какбэ.. вот так. вот логи сниффера:
[Ответ сервера]
HAAAPSII
HAAAPSI jCFj5vztAC
[Отправка на сервер]
:ru IDENT 39 -1 4030 :GALA
[Ответ сервера]
DOMAINS galaxy.mobstudio.ru
[Отправка на сервер]
RECOVER код_востановления
[Ответ сервера]
REGISTER 258880 arm0xnwh 0
[Отправка на сервер]
USER 258880 arm0xnw1 0 vaCUNMhEmxW9yhMX0ctzu
[Ответ сервера]
999 :AUTH OK
[Отправка на сервер]
ADDONS 43 1
MYADDONS 43 1
[Ответ сервера]
LBS 1
874
875
[Отправка на сервер]
JOIN
помогиииитеееее
URL:
https://visavi.net/topics/13747