![]() |
|
|
| 株式会社ウィル | ||
|
|
||
| HOME | 新着情報 | 製品一覧 | 受託開発 | Download | 購入方法 | トライアル | サポート | 会社案内 |
|
|
| アドレス解決サンプル RESOLVE Ver1.0 | |||
|
|
|||
|
ホスト名、ドット区切りのIPアドレスと符号無し32ビットのIPアドレスをそれぞれ参照するプログラムです。
TCPIPOCXは、ホスト名をInetNameに、ドット区切りのIPアドレスをInetAddressに、符号無し32ビットのIPアドレスをInetIpに格納しています。三つのプロパティは連動していて、設定・参照することができます。どれか一つのプロパティを変更すると、ホスト名やサービス名の非同期検索が行い、他の2つのプロパティが変化します。検索が終わるとResolvedイベントが発生し、三つのプロパティは参照できるようになります。
|
▲TOPへ |
Option Explicit
Dim Which%, Search% '数値を入力されたテキストボックスのインデックス
Private Sub Command1_Click()
Dim i%
Search = Which
Command1.Enabled = False
Command2.Enabled = True
Label4 = "検索中"
Tcpip1.StopRequest 'ホスト名やサービス名の非同期検索を中止する
'数値を入力されたテキストボックス以外のテキストを削除する
For i = 0 To 2
If (Search <> i) Then
Text1(i) = ""
End If
Next
Select Case Search
Case 0
'ホスト名を入力した場合,数値をInetNameに代入する
Tcpip1.InetName = Text1(Search)
Case 1
'16進数値を入力した場合、数値を長整数型 (Long) に変換し、InetIpに代入する
Tcpip1.InetIp = CLng("&H" & Text1(Search))
Case 2
'ドットデシマルを入力した場合、数値をInetAddressに代入する
Tcpip1.InetAddress = Text1(Search)
End Select
End Sub
Private Sub Command2_Click()
Text1(Search).SetFocus
Command2.Enabled = False
Tcpip1.StopRequest 'ホスト名やサービス名の非同期検索を中止する
Label4 = "中止しました"
End Sub
'フォームロード
Private Sub Form_Load()
Label6 = Tcpip1.copyright 'TCPIP.OCXの著作権表示
Label4.Left = 0
'フォームの大きさに応じてLabel4の位置と幅を調整する
Label4.Top = ScaleHeight - Label4.Height
Label4.Width = ScaleWidth
End Sub
'InetName、InetAddress、InetIpのいずれかのプロパティにデータをセットしたときに、
'データの検索が終わるとResolvedが発生する
Private Sub Tcpip1_Resolved(ByVal Ip As Long, ByVal Name As String, ByVal Address As String)
Dim i%
'数値を入力されたテキストボックスにフォーカスを移動する
Text1(Search).SetFocus
'IPアドレスが見つからない場合、Ipに-1を返す
If (Ip = -1) Then
Label4 = "アドレスが見つかりませんでした"
Else
Label4 = "検索完了"
If (Search <> 0) Then Text1(0) = Name 'ホスト名
If (Search <> 1) Then Text1(1) = Hex$(Ip) '4バイトのIP値
If (Search <> 2) Then Text1(2) = Address 'ドット区切りのIPアドレス
End If
Command1.Enabled = False
Command2.Enabled = False
End Sub
Private Sub Text1_Change(Index As Integer)
If (Which = Index) Then
If (Text1(Index) <> "") Then
Command1.Enabled = True
Else
Command1.Enabled = False
End If
End If
End Sub
Private Sub Text1_GotFocus(Index As Integer)
Which = Index
Text1(Index).SelStart = 0
Text1(Index).SelLength = Len(Text1(Index))
End Sub
|
|
| (C) Copyright 2003 WILL Corporation. All rights reserved. |