忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/07/26 05:35 |
Pear::Net_Pingにバグ

Net_Pingの現時点での最新バージョン、2.4.3にはバグがあります。
http://pear.php.net/manual/ja/package.networking.net-ping.php

Net_Pingは指定したホストに対してpingを撃ってくれるPearパッケージですが、
そのメソッドのひとつ、checkHostはホストの生死判定を行います。
が、このメソッドを呼び出した場合、必ず下記のエラーが発生します。

Fatal error: Cannot use object of type Net_Ping_Result as array in Ping.php on line 425

該当部分は以下

preg_match_all('|\d+|', $res[3], $matches)

この$retはPear::pingの返り値なのですが、これはオブジェクトとして返ってきます。
オブジェクトに対して$ret[3]なんて指定は当然出来ませんのでエラーになります。

ロードマップには次回の更新予定が掲載されています。
http://pear.php.net/bugs/roadmap.php?package=Net_Ping&roadmapdetail=2.4.4#a2.4.4
>Windows XP
>Function CheckHost fails with error every time.

え?Windowsだけ?
それよりも2.4.3から一年も放置のままというのはどうなんだ。

それにしてもこのパッケージ、バージョン情報が
// $Id: Ping.php,v 1.47 2007/12/28 04:30:42 cconstantine Exp $
とかしか書いてないのだが本当に2.4.3?


エラーになる超簡単なサンプルコード。

ping.php 

1
2
3
4
<?php
    require_once "Net/Ping.php";
    $ping = Net_Ping::factory();
    $ping->checkHost('www.google.co.jp');
 

 

PR


2008/12/17 12:18 | Comments(0) | TrackBack(0) | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<セキュリティ対策5:セッション固定攻撃 | HOME | PHP1-40:PHPでXML>>
忍者ブログ[PR]