Powershellで、FPing

シェアする

同時並列で、Ping要求を投げることができるfpingというコマンドがあります。多数のホストにPingするという用途と、単一ホストに短時間に連続してPingを投げるという二つの使い道のあるツールですね。これを使って、Ping 応答時間の揺らぎを可視化しているのが、smokeping になります。 (参考情報 http://fping.org/)

Smokepingの場合は、センサーがサーバー自身となるので、監視地点からの各所に対しての測定になります。
しかし、よりリアルに測定したいと考えると、測定してくれるセンサーは各所に配置したいところです。
となると、各所にいっぱいあるWindowsマシンをセンサーに使い、分散型モニタリングというのが良さげに思えました。
しっかし、Ping応答の揺らぎを測定するツールを探しましたが、Windowsで動くよいものが、なかなか見つかりません(–) そこで、単一宛先への連続Ping 実行に用途を絞って、Powershell で動く コマンドレットを作成してみました。

◆適当なフォルダーへダウンロードして、こんな風に使います

. .\Get-FPing.ps1

Get-FPing www.yahoo.co.jp

    RttAverage  : 41.85
    SuccessRate : 100
    RttMin      : 39
    RttMedian   : 42
    LossRate    : 0
    RttSd       : 1.52561463023924    
    Count       : 20
    Address     : www.yahoo.co.jp     
    RttMax      : 46

◆簡単な使い方

Get-Help -FULL Get-FPing

名前
    Get-FPing

構文
    Get-FPing [-Target] <string> [-number <int>] [-timeout <int>] [-size <int>] [-interval <int>] 
    [-DontFlagment] [-RawRTTs] [-RawData]  [<commonparameters>]                                                                                                        

パラメーター                                                                              
    -DontFlagment                                                                   
        Set Dont Flagment                                                           

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      f                                                
        動的                     false                                                

    -RawData                                                                        
        return raw data                                                             

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      なし                                               
        動的                     false                                                

    -RawRTTs                                                                        
        return all Round Trip Times                                                 

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      なし                                               
        動的                     false                                                

    -Target <string>                                                                
        What computer name would you like to target?                                

        必須                         true                                             
        位置                         1                                                
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      なし                                               
        動的                     false                                                

    -interval <int>                                                                 
        interval time in ms for next icmp request                                   

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      なし                                               
        動的                     false                                                

    -number <int>                                                                   
        number of pings to send to each host                                        

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      n                                                
        動的                     false                                                

    -size <int>                                                                     
        amount of data in bytes up to 65500                                         

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      l                                                
        動的                     false                                                

    -timeout <int>                                                                  
        timeout in ms to wait for each reply                                        

        必須                         false                                            
        位置                         名前付き                                             
        パイプライン入力を許可する   false                                                       
        パラメーター セット名           (すべて)                                                 
        エイリアス                      w                                                
        動的                     false                                                

    <commonparameters>                                                              
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、                                     
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、              
        OutBuffer, PipelineVariable、および OutVariable。詳細については、                        
        about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216)      
        を参照してください。                                                                  

入力                                                                                  
    なし                                                                              

出力                                                                                  
    System.Management.Automation.PSObject                                           

エイリアス                                                                               
    なし                                                                              

注釈                                                                                  
    なし                                                                              

試しに使ってみた感想とかいただけると嬉しいです(^^)