我在做一个小的聊天程序,现在不知道怎么去判断接收到的是IP还是计算机名!
还望大侠指点!!!
谢了!

解决方案 »

  1.   

    给你一个判断一字符串是否是IP的函数
    Private Function IsIP(strIP As String) As Boolean
        Dim a() As String
        Dim i
        Dim j As Integer
        
    On Error GoTo errIP
        IsIP = True
        a = Split(strIP, ".")
        If (UBound(a) - LBound(a) <> 3) Then
            IsIP = False
        Else
            For i = LBound(a) To UBound(a)
                j = Int(a(i))
                If ((j < 0) Or (j > 255)) Then
                    IsIP = False
                End If
            Next i
        End If
        Exit Function
    errIP:
        IsIP = False
    End Function
      

  2.   

    还能收到计算机名?
    好象只能收到IP的
    accept之后控件属性里就有了
      

  3.   

    那倒不是
    www.csdn.net
    这个好象就有点,不过是计算机名
      

  4.   

    Sub main()
    MsgBox IsIP("192.168.2222.4")
    End Sub
    Function IsIP(Txt As String) As Boolean
    IsIP = False
    If Len(Txt) < 7 Then Exit Function '少于7个字符一般是错的
    '''''''''''''''''''''''''''''''''''''''''''''
    Dim TmpStr As String
    Dim DotNumber As Byte
    Dim IPStr() As String
    Dim i As Long
    For i = 1 To Len(Txt)
        TmpStr = Left(Txt, i)
        If Right(TmpStr, 1) = "." Then DotNumber = DotNumber + 1
    Next
    If DotNumber <> 3 Then Exit Function 'IP中一定有三个 "."
    IPStr = Split(Txt, ".")
    If Not IsNumeric(IPStr(0)) Then Exit Function
    If CLng(IPStr(0)) > 255 Or CLng(IPStr(0)) < 0 Then Exit Function '必须小于256大于-1
    If Not IsNumeric(IPStr(1)) Then Exit Function
    If CLng(IPStr(1)) > 255 Or CLng(IPStr(1)) < 0 Then Exit Function
    If Not IsNumeric(IPStr(2)) Then Exit Function
    If CLng(IPStr(2)) > 255 Or CLng(IPStr(2)) < 0 Then Exit Function
    If Not IsNumeric(IPStr(3)) Then Exit Function
    If CLng(IPStr(3)) > 255 Or CLng(IPStr(3)) < 0 Then Exit Function
    '每一个都必须是数字
    '如果上述条件都满足,那么她就可能是IP
    IsIP = True
    End Function