pingを送信するコマンドライン方法

pingを送信するコマンドライン方法

Drupalが提供するいくつかのウェブサイトがあります。すべてのウェブサイトに乗算モジュールサーバーにpingを送信します。

コマンドラインでpingを送信する方法はありますか?

ping専用サーバーを設定できたらと思います。

ベストアンサー1

Calebが指摘したように、cURLは多くの場合、コマンドラインHTTP用に選択された武器です。 Calebが再び指摘したように、トリッキーな部分は、要求を1つに集めることです。具体的には、サーバーが正しい形式の入力を見つけることができるXML-RPCの場合はさらにそうです。

しかし、もしあなたがMultipinのソースコードを見る、これは単純なHTTPリクエストではないことがわかります(それに置き換えられると思います)。これは、ターゲットサービスによって有効になっているサービスによって変わります。そしてweblogUpdatesの場合、送信されるコンテンツの特別なケースです。

// Ping! Check service method
if (!empty($pingservice->method)) {
  if ($pingservice->method == 'weblogUpdates.ping') {
    $result = xmlrpc($pingservice->url, $pingservice->method, $name, $base_url);
  }
  else {
    $result = xmlrpc($pingservice->url, $pingservice->method, $name, $base_url, $rss_url);
  }
}
else {
  $pingurl = strtr($pingservice->url, array(
    '%name' => urlencode($name),
    '%url' => urlencode($base_url .'/'),
    '%rss' => urlencode($rss_url),
  ));
  $result = drupal_http_request($pingurl);

分類法などに基づいてどのRSS URLを送信するかを決定する上記の行は賢明です。

だから私は2つのアプローチのうちの1つをお勧めします。

  1. 何かを続行するには、drupal_http_request 次のように送信してシミュレーションします。

    $ curl <target-pingservice-url> -d 'name=<your site name>' -d url=<your-url> -d rss=/rss.xml
    
  2. 回避策:MultiPingのすべての動作が必要な場合は、関数を抽出して_multiping_dopingPHPを介してコマンドラインから直接実行できます。

    必要な主な機能はDrupalのxmlrpcです。 http://api.drupal.org/api/drupal/includes%21common.inc/function/xmlrpc/7

頑張ってください!

おすすめ記事