PINGOCXマニュアル


は じ め に

動作環境について

■対応OS

PINGOCXは、以下に示すOSで動作確認を行っております。

Microsoft Windows 95、Microsoft Windows 98、
Microsoft WindowsNT 4.0、Microsoft Windows 2000
Microsoft Windows XP、Microsoft Windows 2003

■開発に必要なソフトウェア

PINGOCXをご使用いただくには、以下のいずれかのソフトウェアが必要です。

Microsoft Visual Basic Ver 5.0
Microsoft Visual Basic Ver 6.0
Microsoft Office 2000 (Access、Excel)

Winsock2をサポートしていない環境では使用することができません。
Windows 95では標準サポートされていませんが、下記のURLからWinsock2へのバージョンアップが可能です。
Winsock2がサポートされているかどうかは、システムディレクトリにWs2_32.DLLがあるかどうかを調べることでわかります。
http://www.microsoft.com/Windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/default.asp

PINGOCXは、Microsoft Visual C++ Ver5.0で作成しています。サンプルは、Microsoft Visual Basic Ver.5.0で作成しています。
※ 本製品は日本語環境のみの対応となります。

 


インストール

セットアップキット(Willware.exe)をダブルクリックします。

画面にしたがって、インストールを進めて下さい。

 

1.インストールを始めます。「次へ」をクリックして下さい。

2.使用許諾契約書です。内容に同意される場合は「次へ」をクリックして下さい。

3.インストール先のフォルダを指定します。
初期設定でよろしければ「次へ」をクリックして下さい。
別のフォルダを指定したい場合は「参照」をクリックし、フォルダを指定して下さい。

4.インストール中に置換されるファイルのバックアップを作成できます。
そのバックアップファイルの保存先フォルダを指定します。
初期設定でよろしければ「次へ」をクリックして下さい。

5.WILLWARE Componentsを登録するスタートメニュー
又はプログラムマネージャのグループフォルダを指定します。
初期設定では、新規に「WILLWARE Components」の名前でフォルダを作成します。
特に指定する必要がなければ、初期設定をお勧めします。

6.プログラムのコピーを開始します。
「次へ」をクリックして下さい。

7.プログラムのコピーをしています。
中断する場合は、「キャンセル」をクリックして下さい。

8.インストールが完了しました。「完了」をクリックし、インストールを終了して下さい。


サンプルを見る

インストールが完了すると、スタートメニューに「WILLWARE Components」が追加されます。

「WILLWARE Components」の「サンプル」を起動すると「WILLWARE Components サンプル」画面が表示されます。サンプルの起動、またはそれぞれのソースを開くことができます。但し、ソースを開くにはライセンスが必要です。トライアルライセンス又は、正規ライセンスを登録してご利用下さい。(ライセンスの登録方法は前項の「ライセンスの登録」をご覧下さい。)

 


サポートについて

原則としてサポートは行いませんので、お問い合わせはご遠慮下さい。

 


バージョンアップについて(無償)

製品のバージョンアップは、すべて無償です。

 

■バージョンアップ情報の入手方法

バーションアップの情報は、弊社ホームページの新着情報で通知し、各商品のページの更新履歴で更新内容を掲示致します。

■最新バージョンの入手方法

最新バージョンのプログラムは、弊社ホームページ(http://www.will-ltd.co.jp/)のダウンロードのページよりダウンロードすることが出来ます。ダウンロードするファイルは、以下のバージョンアップの目的により異なりますのでご注意下さい。

  • WILLWARE Components(全製品用)セットアップキットを利用してバージョンアップ

ファイル名:「Willware.exe」

WILLWARE Components(全製品用)セットアップキットは全ての製品をインストールするためのものです。そのため本製品以外の製品及びサンプル、マニュアルも同時にバージョンアップされます。

  • 各コンポーネント毎のセットアップキットを利用してバージョンアップ
ファイル名:「○○○ocx.exe」

各コンポーネントのファイル(ocx、dll)及び、依存ファイルのみバージョンアップされます。サンプル及びマニュアルはバージョンアップされませんのでご注意下さい。

 

■バージョンアップをする前に

各セットアップキットを利用してバーションアップをする前に、以下のことにご注意下さい。

  • WILLWARE Components(全製品用)セットアップキットを利用してバージョンアップする場合は、古いバージョンをアンインストールしてから、最新バージョンをインストールすることをお勧めいたします。※ アンインストールの方法は、スタートメニューから「設定」→「コントロールパネル」→「アプリケーションの追加と削除」の画面で、「WILLWARE Components」を選択し、画面の指示に従って行って下さい。

  • 各コンポーネント毎のセットアップキットを利用してバージョンアップする場合は、最新バージョンをそのままインストールして下さい。古いファイルは上書きされます。※ 弊社製品を複数ご利用いただいている場合、いずれか1つをバーションアップしても他の製品に影響はありません。

 

■バージョンアップの方法

セットアップキットをダブルクリックし、画面の指示に従ってインストールを進めて下さい。

 


再配布について

■作成したアプリケーションの配布時

PINGOCXを単体あるいはアプリケーションに組込んでの再配布を許可します。

 

■再配布時に必要な配布可能ファイル

PINGOCXを利用して作成したアプリケーションを配布する場合には、以下のファイルを添付する必要があります。
( )内は推奨バージョンです。

・PING.OCX
・MFC42.DLL (Ver 4.21.7022)
・MFC42LOC.DLL (Ver 4.21.7022)
・MSVCRT.DLL (Ver 5.00.7022)
・OLEPRO32.DLL (Ver 5.0.4118)
・OLEAUT32.DLL (Ver 2.20.4118)

※セットアップウィザードを使用する場合

PINGOCXをインストールすると、自動的にOCXの依存ファイルが以下のディレクトリにインストールされます。

C:\Windows\system (Windows95, Windows98の場合)
C:\WINNT\system32 (WindowsNT4.0, Windows2000, Windows2003の場合)
C:\ Windows \system32 (WindowsXPの場合)

セットアップウィザードを実行すると自動的にアプリケーション配布時に必要なOCX
(内部で利用しているOCX)と、DLLファイルがSetup.lstファイルに追加されます。

 

■著作権

 


プログラミング概要

最大受信回数を指定

ホストアドレスとしてブロードキャストアドレスを指定した場合、ホストからのエコー応答は複数になることがあります。MaxCountはいくつのICMPエコー応答メッセージを受け取るかを決定します。

  例:Ping1.MaxCount = 254

ホストに到達可能かどうかを調べる場合は、1を指定します

  例:Ping1.MaxCount = 1

タイムアウトを指定

ホストからのICMPエコー応答メッセージが受信できない場合、一定時間経過した時点で、応答なしとみなします。ホスト名からIPアドレスへの変換に要した時間はタイムアウトには含まれません。時間はミリ秒単位で指定します。通常1秒程度でよいでしょう。(デフォルトは1000)

  例:Ping1.Timeout = 5000 '5秒

指定された時間内にMaxCountで指定した数のメッセージが受け取れないと、たとえRepliedイベントが発生していてもClosedイベントのCodeは1(タイムアウト)になります。

PINGの開始

ホスト名を指定して、PINGを開始します。ホスト名には、IPアドレスまたは名前のどちらでも指定することができます。名前を指定した場合、最初に名前をIPアドレスに変換してからPINGを開始します。名前をIPアドレスに変換するには時間を要することがあります。名前を見つけることができない場合は、Closedイベントで通知します。

  例:Ping1.Send "127.1"

  例:Ping1.Send "hostname"

名前が解決する(IPアドレスに変換することができる)とResolvedイベントが発生します。10進ドット形式で指定した場合もイベントは発生します。

  例:

Private Sub Ping1_Resolved(ByVal RemoteIpAddress As String)
 m_RemoteIP = RemoteIpAddress 'あとで利用するために記憶する
End Sub

 

 

エコー応答を受信

ホストからのICMPエコー応答メッセージが受信できると、Repliedイベントが発生します。Repliedイベントには、相手のIPアドレスであるRemote(文字列、10進ドット形式)、往復に要した時間であるTripTime(ミリ秒)、及びTTL(TimeToLive、生存時間)が渡されます。

Remoteには、応答したホストのIPアドレスが10進ドット形式(例:192.13.22.4)の文字列で格納されています。

TripTimeには、送信時にセットした時間と受信時の時間を引き算して求められた時間がミリ秒単位で格納されています。

PINGOCXは、時刻の測定に、GetTickCount APIを使用しています。

TTLには、ホストから自ホストまでに経由したルータの数を推定するための情報が格納されています。

UNIXでは初期値を255にセットする場合が多く、古いUNIXでは、30や60などに設定され、Windowsでは128に設定されます。

応答メッセージが返送されてくる途中ルータでTTLは1づつ減じられます。たとえば、TTLが253である場合、2つのルータを経由したと想像できます。

  例:

Private Sub Ping1_Replied(ByVal Remote As String,_
  ByVal TTL As Long, ByVal TripTime As Long)
 MsgBox "ホスト" & Remote & "は、生きています。"
End Sub

PINGの終了

以下の場合にはClosedイベントが発生します。

  1. ホストからの応答が最大受信回数に達した場合
  2. 何らかのエラーがあった場合
  3. 応答待ちの状態でタイムアウトした場合
  4. Closeメソッドを発行した場合

Closedイベントでは、終了理由を示す数(0〜3; pinglib.pingEndNormal, pinglib.pingEndTimeout, pinglib.pingEndClosed, pinglib.pingEndError)がCode変数に渡されます。

  1. Codeが0(pinglib.pingEndNormal)の場合
    応答が最大受信回数(MaxCountプロパティで指定した回数)に達したことを示します。

  2. Codeが1(pinglib.pingEndTimeout)の場合
    最大受信回数に達しない場合で、タイムアウト(Timeoutプロパティで指定した時間)となったことを示します。

  3. Codeが2(pinglib.pingEndClosed)の場合
    Closeメソッドによる中断を示します。

  4. Codeが3(pinglib.pingEndError)の場合
    Sendメソッド後にエラーが発生したことを示します。エラーが発生した場合、エラーコードをLastErrorメソッドで知ることができます。

  例:

Private Sub Ping1_Closed(ByVal Code As Long)
 Select Case Code
 Case pinglib.pingEndNormal '0
  MsgBox "正常終了"
 Case pinglib.pingEndTimeout '1
  MsgBox "タイムアウト"
 Case pinglib.pingEndClosed '2
  MsgBox "強制終了"
 Case pinglib.pingEndError '3
  MsgBox "エラー:" & Ping1.LastError
 End Selec
End Sub

 

技術情報

ICMPのパケットサイズ(IPヘッダのサイズは含みません)は76バイトです。

 


状態遷移図

 


プロパティ

MaxCountプロパティ

■機 能

エコー応答を受け取る数を設定します。

■構 文

Object.MaxCount[=Value]
MaxCountプロパティの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Value エコー応答の受信数を設定します。次の「設定値」を参照してください。

■設定値

Valueの設定値は以下の通りです。
(値) (説 明)
エコー応答の受信数
上記以外 1として扱われる

■データ型

長整数(Long)

■解 説

プロパティに0以下を設定した場合は1に変換されます。

 

Timeoutプロパティ

■機 能

エコー応答を受け取るための待機時間を設定します。

■構 文

Object.Timeout[=Value]
Timeoutプロパティの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Value 待機時間を示す長整数です。次の「設定値」を参照してください。

■設定値

Valueの設定値は次の通りです。
(値) (説 明)
-1 タイムアウトしない。(初期値)
0及び正 タイムアウト値。
上記以外 不定。

■データ型

長整数(Long)

■解 説

ホストからエコー応答を受け取るための待機時間をミリ秒単位で設定します。
Timeoutプロパティを-1以外に設定するとタイムアウトイベントが発生します。

 

Copyrightプロパティ

■機 能

PINGOCXのバージョン情報です。アプリケーション作成者は、アプリケーションプログラムまたはマニュアルに、ここで表示される文字列を表記するようにしてください。

■構 文

Object.Copyright
Copyrightプロパティの構文の指定項目は次の通りです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。

■データ型

文字列(String)

 

UseSendDataプロパティ

■機 能

SetSendDataメソッドを使って任意のデータを送信するかどうかを指定します。

■構 文

Object.UseSendData[=Value]
UseSendDataプロパティの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Value 任意のデータを示すブール値です。

■設定値

Valueの設定値は次の通りです。
(値) (説 明)
True SetSendDataメソッドを使って登録したデータを送信します。
False 規定のデータを送信します。(初期値) 次の「設定値」を参照してください。

■データ型

ブール型(boolean)

■解 説

規定のデータのフォーマット:
マシンの起動時からの経過時間[ミリ秒](4バイト)
半角文字('U')(64バイト)

 

MaxRecvDataSizeプロパティ

■機 能

受信サイズを設定します。

■構 文

Object.MaxRecvDataSize[=Value]
MaxRecvDataSizeプロパティの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Value 受信するデータサイズを示す長整数です。次の「設定値」を参照してください。

■設定値

Valueの設定値は次の通りです。
(値) (説 明)
0 送信したときのデータ長まで受信します。
指定したデータのサイズまで受信します。

■データ型

長整数(Long)

 

TTLプロパティ

■機 能

送信時のTTLを設定します。

■構 文

Object.TTL[=Value]
TTLプロパティの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Value TTLを指定する長整数です。次の「設定値」を参照してください。

■設定値

Valueの設定値は次の通りです。
(値) (説 明)
-1 そのマシンの規定値が使用されます。(初期値)
0〜255 指定した値がTTLに設定されてデータが送信されます。

■データ型

長整数(Long)




メソッド

Closeメソッド

■機 能

PINGを終了します。

■構 文

Object.Close()
Closeメソッドの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。

■戻り値

なし。

■解 説

PINGを終了します。pingINIT(Statメソッドで確認)以外の場合、終了できたならClosedイベントを発生します。pingINITの場合、Closedイベントは発生しませんが特にエラーも発生しません。

 

LastErrorメソッド

■機 能

Sendメソッド後に発生した詳細エラーコードを示します。

■構 文

Object.LastError()
LastErrorメソッドの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。

■戻り値

長整数(Long)
戻り値は次の通りです。
(値) (説 明)
-1 タイマーの作成に失敗です。
上記以外 Winsockのエラーです。(後述のWinsockエラーコードを参照してください。)

■解 説

PINGOCX内で呼び出したWin32 APIまたはWinsockのエラーコードです。

 

Sendメソッド

■機 能

ホスト名を指定してPINGを開始します。

■構 文

Object.Send(RemoteHost As String)
Sendメソッドの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
RemoteHost ホスト名。

■戻り値

なし。

■解 説

指定したホスト名に対しPINGを開始します。
ホスト名には、IPアドレスまたは名前のどちらでも指定することができます。

 

Statメソッド

■機 能

PINGOCXの内部状態を示します。

■構 文

Object.Stat()
Statメソッドの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。

■戻り値

長整数(Long)
戻り値は次の通りです。
(値) (説 明)
pinglib.pingINIT =0, 初期状態です。
pinglib.pingRESOLVING =1, 名前解決待ち状態です。
pinglib.pingRESOLVED =2, 名前解決済み状態です。
pinglib.pingSENDING =3, 応答待ち状態です。
pinglib.pingREPLIED =4, 応答受信済み状態です。

■解 説

StatメソッドはPINGの状態を示します。

 

SetSendDataメソッド

■機 能

送信データとしてDataを登録します。

■構 文

Object.SetSendData(Data As String)
SetSendDataメソッドの構文の指定項目は次の通りです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。

■戻り値

なし。

 

GetRecvDataメソッド

■機 能

受信したデータを取り出します。Repliedイベントの中でのみ有効です。

■構 文

Object.GetRecvData()
GetRecvDataメソッドの構文の指定項目は次の通りです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。

■戻り値

文字列(String)

 


イベント

Closedイベント

■機 能

Sendメソッドが終了すると発生します。

■構 文

Private Sub Object_Closed(ByVal Code As Long)
Closedイベントの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Code 終了の理由を示す値です。次の「コード」を参照してください。

■コード

(値) (内 容)
pinglib.pingEndNormal 0 応答が最大受信回数(MaxCountプロパティで指定した回数)に達したことによる終了を意味します。
pinglib.pingEndTimeout 1 最大受信回数に達しない場合で、タイムアウト(Timeoutプロパティで指定した時間)となったことによる終了を意味します。
pinglib.pingEndClosed 2 Closeメソッドによる終了を意味します。
pinglib.pingEndError 3 エラーが発生したことによる終了を意味します。

■解 説

Sendメソッドが終了するときに発生します。

 

Repliedイベント

■機 能

ホストから応答があると発生します。

■構 文

Private Sub Object_Replied
(ByVal Remote As String, ByVal TTL As Long, ByVal TripTime As Long)
Repliedイベントの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
Remote 相手のIPアドレス(10進ドット形式)
TTL ホストから自ホストまでのホップ数を推定するための情報
TripTime 受信するまで(Resolvedイベント直後からRepliedイベント直前まで)に要した時間(ミリ秒)

■解 説

エコーの応答を受信すると発生します。

 

Resolvedイベント

■機 能

名前が解決すると発生します。

■構 文

Private Sub Object_Resolved(ByVal RemoteIpAddress As String)
Resolvedイベントの構文の指定項目は次のとおりです。
(指定項目) (内 容)
Object PINGOCXオブジェクトです。
RemoteIpAddress 相手のIPアドレス(10進ドット形式)。

■解 説

Sendメソッドで、ホストを名前で指定した場合は名前が解決した(IPアドレスに変換することができる)ときに、また、ホストをIPアドレスで指定した場合はSendメソッドの処理中に発生します。
 

 


Winsockエラーコード

10004 システムコールの割り込みが発生
10009 無効なソケット番号を指定した
10013 アクセスが拒否された
10014 間違ったアドレスを指定した
10022 無効な引数
10024 開いているファイル数が多すぎる
10035 ブロッキングモードなら操作がブロックした
10036 ブロッキング処理中に別のAPIを呼び出した
10037 非ブロッキング処理中に同じAPIを呼び出した
10038 ソケット以外に対してソケット操作が行われた
10039 宛先のアドレスが必要
10040 メッセージが長すぎる
10041 ソケットに対するプロトコルの種類が不正
10042 プロトコルが使用できない
10043 プロトコルがサポートされていない
10044 ソケットの種類がサポートされていない
10045 操作がソケットでサポートされていない
10046 プロトコルファミリがサポートされていない
10047 アドレスファミリがサポートされていない
10048 アドレスがすでに使用中
10049 要求されたアドレスを割り当てられない
10050 ネットワークが落ちている
10051 ネットワークが到達できない
10052 リセットによりネットワーク接続が落とされた
10053 ホスト内部で接続を中断した
10054 相手が接続を強制的に切った
10055 利用可能なバッファスペースが存在しない
10056 ソケットがすでに接続されている
10057 ソケットが接続されていない
10058 ソケットの遮断後であるため送信できない
10059 参照数が過大:結合不可能
10060 時間切れでconnectまたはsendに失敗した
10061 接続が拒否された
10062 シンボリックリンクが多すぎる
10063 ファイル名が長すぎる
10064 ホストが落ちている
10065 ホストへの到達経路が存在しない
10091 ネットワークサブシステムが使用不能
10092 Winsockがサポートしていないバージョンを指示した
10093 Winsockが初期化されていない
10101 接続が切れている
11001 ホストが見つからない
11002 やり直し可能なエラー
11003 回復不可能なエラー
11004 データがない

サンプル

IsAlive(Ver 1.0)

ホストの状態を確認します。
PINGを行ってから、FTPやMAILり処理を開始するアプリケーションの雛形としてご利用ください。

■使用方法

    1. ホスト名の設定
      PINGしたいホストのIPアドレス又は名前のどちらかを指定して下さい。

    2. タイムアウトの設定
      ホストからの応答が受信できない場合の待機時間を指定します。
      デフォルトは「1000(1秒)」です。

    3. 最大再送回数の設定
      ホストからの応答が確認できない場合に、PINGを繰り返す回数を指定します。

    4. PINGの開始
      1〜3の設定が済みましたら、開始ボタンを押してPINGを開始します。

 


WILLPING(Ver.2.0)

ホストの状態を確認します。
応答時間やホップ数、経由するルータのIPアドレスなどの情報も表示します。
ホストアドレスにブロードキャストアドレスを指定して、複数のホストから応答を確認できます。

■使用方法

    1. ホスト名の設定
      PINGしたいホストのIPアドレス又は名前のどちらかを指定して下さい。

    2. タイムアウトの設定
      ホストからの応答が受信できない場合の待機時間を指定します。
      デフォルトは「3000(3秒)」です。

    3. 受信するエコーの数の設定
      ホスト名でブロードキャストを指定した場合に、応答を受信する数を指定します。
      ブロードキャストを行う場合は多めに指定して下さい。

    4. 繰り返し回数の設定
      PINGを繰り返す回数を指定します。
      ホストからの応答が確認出来ても、出来なくても指定した回数分繰り返しPINGが行われます。

    5. 送信データの入力
      ここで入力したデータを用いて送信します。

    6. トレースルートモードの設定
      指定したホストまでのネットワーク経路(経路上にどのようなルータが位置しているか)をリスト表示します。

    7. PINGの開始
      1〜6の設定が住みましたら、開始ボタンを押してPINGを開始します。
      中断
      ボタンを押すと処理を中止します。


PING Mult(Ver.1.0)

一定の間隔でPINGを繰り返すことにより、ホストを定期的に監視することが出来ます。
最大5つのホストを同時に監視できます。

    1. ホスト名の設定
      PINGしたいホストのIPアドレス、又は名前のどちらかを指定して下さい。

    2. 対象の設定
      指定したホストを監視する対象にする場合は、チェックボックスにチェックを付けます。

    3. 状態の設定
      ホストの状態を表示します。

    4. 確認時刻の設定
      ホストの状態を確認した時刻が表示されます。

    5. チェックする時間間隔の設定
      PINGを繰り返す間隔を指定します。
      デフォルトは「30000(30秒です。)」

    6. タイムアウトの設定
      ホストからの応答が受信できない場合の待機時間を指定します。
      デフォルトは「3000(3秒)」です。

    7. PINGの開始
      1〜6の設定が済みましたら、開始ボタンを押してPINGを開始します。
      中断ボタンを押すと処理を中止します。
      「チェックする時間間隔」で指定した間隔でPINGが繰り返されます。
      ホストから応答があるか、タイムアウトになるまで「チェック中」と表示されます。
      その後、応答があるかタイムアウトした時の時刻が表示されます。

発行所 株式会社ウィル

本紙の内容を許可なく複写、転載、データファイル化することを禁じます。

Copyright 2000-2002 WILL Corporation. All rights reserved.