ping을 보내는 명령줄 방법

ping을 보내는 명령줄 방법

Drupal이 제공하는 웹사이트가 여러 개 있습니다. 모든 웹사이트에는곱셈 모듈서버에 ping을 보냅니다.

명령줄을 통해 ping을 보내는 방법이 있습니까?

핑 전용 서버를 설정할 수 있었으면 좋겠습니다.

답변1

Caleb이 지적했듯이 cURL은 명령줄 HTTP를 위해 선택되는 무기인 경우가 많습니다. Caleb이 다시 지적한 것처럼 까다로운 부분은 요청을 하나로 모으는 것입니다. 특히 서버가 올바른 형식의 입력을 찾을 수 있는 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을 보낼지 결정하는 위의 줄은 현명합니다.

그래서 저는 두 가지 접근 방식 중 하나를 추천합니다.

  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

행운을 빌어요!

관련 정보