/コンピュータ/blogn/自前のping一括送信 コンピュータ/blogn/自前のping一括送信 - A.K.I. Home

A.K.I. HomeATOM:A.K.I. Home


Top
コロンブスエッグ
SuperTagCenter
適当言語nolina
くろまじゅつしへの道
SiteDev2
MRTG
RTX1000
楽天ダウンロード


日刊放言なのか。
SuperTagCenter



Hot2ls.
Hot2ls.
Hot2ls.
2008年2月29日 12:29:25
Buy tramadol onoine.
Buy tramadol onoine.
Buy tramadol onoine.
2008年2月27日 12:36:46
Discount airline tickets.
Plane tickets. Airline tickets. Bob seger tickets. Colts tickets. Cheap airline tickets.
Airline tickets.
2008年2月26日 13:16:04
Cheap tickets.
Plane tickets. Concert tickets. Discount airline tickets. Cheap tickets. Las vegas show tickets. Cheap airline tickets.
Disneyland tickets.
2008年2月24日 12:47:11
Pnentermine online shop.
Pnentermine online shop.
Pnentermine online shop.
2008年2月20日 11:57:17
Ambien online zhop.
Ambien online zhop.
Ambien online zhop.
2008年2月19日 11:29:01
Buy ambuen online.
Buy ambuen online.
Buy ambuen online.
2008年2月18日 11:47:25
Ambien onlinf shop.
Ambien onlinf shop.
Ambien onlinf shop.
2008年2月17日 11:45:45
Ambien onlinr shop.
Ambien onlinr shop.
Ambien onlinr shop.
2008年2月16日 11:51:31
Ambien online shlp.
Ambien online shlp.
Ambien online shlp.
2008年2月15日 13:06:46
Ambien cr 12.5 photo.
Ambien next day delivery where us. Discount ambien.
Ambien buy.
2008年2月14日 12:24:55
ambien with sudafed.
ambien with sudafed.
ambien with sudafed.
2008年2月13日 13:36:11
Buy ambien pnline.
Buy ambien pnline.
Buy ambien pnline.
2008年2月11日 12:23:17
Lunesta zolpidem tartrate compare.
Lunesta zolpidem tartrate compare.
Lunesta zolpidem tartrate compare.
2008年2月9日 13:07:20
Buy mbien online.
Buy mbien online.
Buy mbien online.
2008年2月6日 12:42:27
T5amadol online shop.
T5amadol online shop.
T5amadol online shop.
2008年2月5日 13:01:52
Gramadol online shop.
Gramadol online shop.
Gramadol online shop.
2007年12月18日 05:19:18
Tramadol on;ine shop.
Tramadol on;ine shop.
Tramadol on;ine shop.
2007年12月17日 13:53:37
Anax online shop.
Anax online shop.
Anax online shop.
2007年11月26日 06:18:33
blognにTechnoratiのリンクカウンタを。
pingを受け取り、リストに従って送信するPHPのプログラムを書いてみました。詳細はこちらさらに、Technoratiのリンクカウンタで遊んでみたかったので、blognのテンプレートに「記事ごとのURLを{LOGURL}でテンプレートに埋め込める機能」を追加してみました。

2007年8月29日 17:47:32

コンピュータ / blogn / 自前のping一括送信

pingoo!も便利なのだが、登録数が増えてくると管理が面倒だし、一々ログインしないと結果が見れないのも不便だ。
なのでいっそ自分で一括配信の仕組みを作ることに。
参考にするのはここ
とりあえず

  • ファイルで一覧を管理
  • localhostで実行するWebアプリとし、それ自体更新pingを受け取る

ぐらいを目標にしつつ、最初はリストをベタ書きする(笑)
まず

#pear install XML_RPC

こんなかんじ。

さくさくとサンプルを元にいじっていきます。

<?php
require_once("XML/RPC.php");
require_once("XML/RPC/Server.php");
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
$logfile="/****/log/pinglog.txt";

function pingproxy ($params) {
	file_put_contents($logfile,"RPCSERVER_start\n",FILE_APPEND);
	global $logfile;
	$servers=array(
		array(
			'server' => 'http://ping.rss.drecom.jp',
			'path'   => '/',	),
		array(
			'server' => 'http://ping.bloggers.jp',
			'path'   => '/rpc/',
		),
	);	
	global $XML_RPC_erruser; // import user errcode value
	$msg=new XML_RPC_Message('weblogUpdates.ping',$params);
	//ここループ
	foreach($servers as $k => $v){
	$client=new XML_RPC_Client($v['path'],$v['server'],80);
	$response=$client->send($msg);
	if(!$response->faultCode()){
		file_put_contents($logfile,$v['server'].":success\n",FILE_APPEND);
	}else{
		file_put_contents($logfile,$v['server'].":fail\n",FILE_APPEND);
	}
	//ここまでループ
	}
	$value = new XML_RPC_Value(
	array(
		"flerror" => new XML_RPC_Value(0, "boolean"),
		"message" => new XML_RPC_Value("Thanks for the ping."),
	),"struct");
	return new XML_RPC_Response($value);
}

file_put_contents($logfile,"---start---:".date("r")."\n",FILE_APPEND);
//RPCの実行
$s = new XML_RPC_Server(array("weblogUpdates.ping" => array("function" => "pingproxy")));
file_put_contents($logfile,"----end----:".date("r")."\n",FILE_APPEND);
?>

第一弾。とりあえずベタ書きバージョン。

さらにリスト読み込み&サーバ名とパス分割バージョン。

<?php
require_once("XML/RPC.php");
require_once("XML/RPC/Server.php");
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
$logfile="/********/pingproxy/pinglog.txt";
$pinglist="/********/pingproxy/pinglist.txt";
function pingproxy ($params) {
	file_put_contents($logfile,"RPCSERVER_start\n",FILE_APPEND);
	global $logfile;
	global $pinglist;
	global $XML_RPC_erruser; // import user errcode value
	$msg=new XML_RPC_Message('weblogUpdates.ping',$params);
	//ここループ
	$lines = file($pinglist);
	foreach ($lines as $line_num => $line) {
	preg_match ("/^[^\\/]+\\/\\/([^\\/]+)(\\/.+)$/", rtrim($line) ,$match);
	if(($match[2]!="")and($match[1]!="")){
	$client=new XML_RPC_Client($match[2],$match[1],80);
	$response=$client->send($msg);
	if(!$response->faultCode()){
		file_put_contents($logfile,$match[1].":success\n",FILE_APPEND);
	}else{
		file_put_contents($logfile,$match[1].":fail\n",FILE_APPEND);
	}
	}
	//ここまでループ
	}
	$value = new XML_RPC_Value(
	array(
		"flerror" => new XML_RPC_Value(0, "boolean"),
		"message" => new XML_RPC_Value("Thanks for the ping."),
	),"struct");
	return new XML_RPC_Response($value);
}

file_put_contents($logfile,"---start---:".date("r")."\n",FILE_APPEND);
//RPCの実行
$s = new XML_RPC_Server(array("weblogUpdates.ping" => array("function" => "pingproxy")));
file_put_contents($logfile,"----end----:".date("r")."\n",FILE_APPEND);
?>
 
TB:http://www.tetsuneko.net/aki/sitedev2/tb/dc41c6279081cc16d9042e1919516939
(c)A.K.I. 2007