скрипт для пинга pingomatic и других сервисов

H
На сайте с 21.12.2007
Offline
24
3208

помогите плз со скриптом для пинга pingomatic и других сервисов

<?php 


$content = '
<?xmlversion="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>OfficialGoogleBlog</value>
</param>
<param>
<value>http://googleblog.blogspot.com/</value>
</param>
<param>
<value>http://googleblog.blogspot.com/changed-page.html</value>
</param>
<param>
<value>http://googleblog.blogspot.com/atom.xml</value>
</param>
</params>
</methodCall>
';

$headers = 'POST /RPC2 HTTP/1.0
User-Agent: Ping
Host: rpc.weblogs.com
Content-Type: text/xml
Content-length: '.strlen($content);

$request = $headers."\r\n".$content;

$fs = fsockopen('rpc.weblogs.com', 80, $error_number, $error_string);

if ($fs)
{
fwrite ($fs, $request);

while (!feof($fs))
{
$response = fgets($fs);
echo $response;
}

fclose ($fs);
}
else
{
echo $error_number." - ".$error_string;
}

?>

если пинговать rpc.weblogs.com то возвращается

HTTP/1.1 200 OK Date: Thu, 05 Jun 2008 08:52:07 GMT Server: Apache ...

а например при отсылке запросов на rpc.pingomatic.com ничего не возвращается

при пинге blogsearch.google.com/ping/RPC2 и ping.blogs.yandex.ru/RPC2 возвращается ошибка 14006611

D
На сайте с 25.07.2008
Offline
145
#1

Юзай Wordpress, там этот скрипт стоит по умолчанию и всегда работает.

M
На сайте с 21.11.2005
Offline
98
msv
#2

не нужно изобретать велосипед :)

http://www.cadenhead.org/workbench/weblog-pinger/

Умный кросспостинг (http://www.pistonposter.com/) в 14 социалок.
zhidronsss
На сайте с 12.10.2007
Offline
36
#3

Лень вспоминать где валялось, но вроде рабочий вариант. Притом на сокетах+ вариант на курле.

Отпишись по результатам.

<?php

ping ("http://ping.blogs.yandex.ru/RPC2", "blognam","blogurl");

function ping ($url, $blogname, $blogurl) {
$tb_send='<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>'.$blogname.'</value>
</param>
<param>
<value>'.$blogurl.'</value>
</param>
</params>
</methodCall>';

$target=parse_url($url);

$tb_sock = fsockopen($target["host"], 80);
fputs($tb_sock, "POST " . $target["path"] . $target["query"] . " HTTP/1.1\r\n");
fputs($tb_sock, "User-Agent: The Incutio XML-RPC PHP Library (multicall client)\r\n");
fputs($tb_sock, "Host: " . $target["host"] . "\r\n");
fputs($tb_sock, "Content-Type: text/xml\r\n");
fputs($tb_sock, "Content-length: " . strlen($tb_send) . "\r\n");
fputs($tb_sock, "Connection: close\r\n\r\n");
fputs($tb_sock, $tb_send);
// Gather result
while (!feof($tb_sock)) {
$response .= fgets($tb_sock, 128);
}
// Close socket
fclose($tb_sock);
// Did the trackback ping work
strpos($response, '<error>0</error>') ? $return = true : $return = false;
// send result
return $return;
}
?>


<?php
ping ("http://ping.blogs.yandex.ru/RPC2", "blogname","blogurl");

function ping ($url, $blogname, $blogurl) {

$target=parse_url($url);

# Using the XML-RPC extension to format the XML package
$request = xmlrpc_encode_request("weblogUpdates.ping", array($blogname, $blogurl) );

# Using the cURL extension to send it off,
# first creating a custom header block
$header[] = "Host: " . $target["host"];
$header[] = "Content-type: text/xml";
$header[] = "Content-length: ".strlen($request) . "\r\n";
$header[] = $request;

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'POST' );
$result = curl_exec( $ch );
curl_close($ch);

return $result;
}
?>
Pentium Prescott
На сайте с 23.10.2008
Offline
213
#4


$response .= fgets($fs);

?

Покупка и продажа криптовалют ( https://www.bestchange.ru/?p=1296834 )
I
На сайте с 26.04.2008
Offline
137
#5
zhidronsss:

Отпишись по результатам.

Как узнать результаты. Принял ли Яша пинги?

Скрипты отработали без ошибок.

Заранее спасибо за помощь)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий