tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
TCP/IP を使って切り忘れチェック(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2007/07/15 20:34
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[通信][インターネット][]                                        *
* キーワード:現在未使用,稼動中,社内のLAN内,IPアドレス,,                    *
***********************************************************************************

--------------------------------------------------------------------------------------
No.3862 RE:TCP/IPを使って切り忘れチェック  投稿者:NAO★ [2002/02/16(土)1:46分]
--------------------------------------------------------------------------------------

面白いです。
いわゆるPingコマンドを使用できれば目的は達成できると思いますが、PingはTCP/IPとはちょっとちがうプロトコル(ICMP)を使ってやり取りします。

で、VB付属のWinsockコントロールはICMPをサポートしていないらしいのでAPI関数で実現する必要がありそうです。

さがしてみたら、こんなページがあったので参考にしてみてください。
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/0011/api/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
とは言いながらも、不完全ながら、Winsockでチェックできるか作ってみました。
たぶん調べるコンピュータがWindowsマシンなら大丈夫だと思うのですが、どうでしょうか?
'使用コントロール(コントロール名)
'Winsock( Winsock1 )
'Text( Text1 )
'Command( Command1 )

Private Const IP_Addr = "192.168.0."
Private Const Interval = 0.3
Private Sub StopTime(st As Single)
'タイマー関数を使って Sleep 関数と同様の関数を作成
    Dim sngSt As Single
    sngSt = Timer
    Do While Timer - sngSt < st
        DoEvents
    Loop
End Sub
Private Sub Command1_Click()
Dim ip As Integer
    Text1.Text = ""
    For i = 1 To 254
        Winsock1.RemoteHost = IP_Addr & CStr(i)
        Winsock1.RemotePort = 139   'NET BIOSポート
        Winsock1.Connect
        StopTime Interval
        If Winsock1.State = 7 Then
            '接続完了
            Text1.Text = Text1.Text & Winsock1.RemoteHost & _
                  "::Active!(" & Winsock1.State & ")" & vbCrLf
        Else
            '接続失敗
            Text1.Text = Text1.Text & Winsock1.RemoteHost & _
                "::Closed!(" & Winsock1.State & ")" & vbCrLf
        End If
        Text1.SelStart = Len(Text1.Text)
        Winsock1.Close
    Next
    MsgBox "検索終了"
End Sub



 [スレッド一覧へ] [親スレッドへ]