WILLはネットワークに関するあらゆるソリューションをご提供します。
株式会社ウィル

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.