IP地址输入验证问题
Private Function IPCheck(ByVal strIP As String) As BooleanTry
Dim intC = Convert.ToInt32(strIP)
Return True
Catch ex As Exception
Console.WriteLine(ex.Message)
Return False
End Try
End Function
Dim bolc As Boolean
Dim str() As Object = New Object() {}
Dim a As Integer
Dim i As Integer
Dim ipnb As String
Dim strIP As String
ipnb = 0
bolc = IPCheck(Me.TextBox1.Text)
If bolc = True Then
strIP = TextBox1.Text
Else
ipnb = 1 '输入应该为数字
End If
If InStr(".", strIP) Then
str(i) = Split(strIP, ".")
a = UBound(str)
Else
ipnb = 5
End If
If 0 < a < 3 Then
i = a
Else
ipnb = 2 '输入形式不对
End If
For i = 0 To 3 Step 1
If 0 < str(i) < 255 Then
ipnb = 4 '正确
Else
ipnb = 3 '输入数字应该在255和0之间
End If
Next
Select Case ipnb
Case 0
MsgBox("请输入IP")
Case 1
MsgBox("输入应该为数字!")
Case 2 Or 5
MsgBox("输入形式不对!")
Case 3
MsgBox("输入数字应该在255和0之间!")
Case 4
MsgBox("输入正确!")
End Select
End Sub
运行时报"索引超出了数组界限"错误
请高手帮忙吧
急! --------------------编程问答--------------------
Imports System.Text.RegularExpressions--------------------编程问答-------------------- For i = 0 To 3 Step 1
Namespace LzmTW.uSystem.uNet
Friend Class Common
Public Const IP4_PATTERN As String = "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
''' <summary>
''' 是否是单个有效IP4地址
''' </summary>
''' <param name="ip" >十进制表示法地址字串</param>
''' <returns>地址类型</returns>
Public Shared Function IsValidIP4_Single_GetFirstPart(ByVal ip As String) As IP4Type
If String.IsNullOrEmpty(ip) Then Return IP4Type.Unknown
Dim mPattern As String = String.Concat("^", IP4_PATTERN, "$")
With Regex.Match(ip, mPattern)
If .Success Then
Dim mFirstPart As String = .Groups(1).Value
Return GetIP4Type(mFirstPart)
End If
End With
Return IP4Type.Unknown
End Function
''' <summary>
''' IP4地址类型
''' </summary>
''' <param name="ipFirstPart">地址十进制表示法的首部</param>
Public Shared Function GetIP4Type(ByVal ipFirstPart As String) As IP4Type
If String.IsNullOrEmpty(ipFirstPart) Then Return IP4Type.Unknown
Dim mFirstPartToInt As Integer
If Not Integer.TryParse(ipFirstPart, mFirstPartToInt) Then Return IP4Type.Unknown
Select Case mFirstPartToInt
Case 1 To 126
Return IP4Type.A
Case 128 To 191
Return IP4Type.B
Case 192 To 223
Return IP4Type.C
Case Else
Return IP4Type.Unknown
End Select
End Function
''' <summary>
''' 根据所给地址类型取默认掩码地址
''' </summary>
''' <returns >掩码地址,如地址无效则为Nothing</returns>
Public Shared Function GetMask(ByVal iptype As IP4Type) As String
Select Case iptype
Case IP4Type.A
Return "255.0.0.0"
Case IP4Type.B
Return "255.255.0.0"
Case IP4Type.C
Return "255.255.255.0"
Case IP4Type.Unknown
Return Nothing
End Select
Return Nothing
End Function
End Class
End Namespace
If 0 < str(i) < 255 Then
ipnb = 4 '正确
这里异常了? --------------------编程问答-------------------- 就是那里了,不知道 是怎么回事 --------------------编程问答-------------------- 我刚才用你的程序时,里面报了一个"IP4Type"未定义类型啊 --------------------编程问答--------------------
Namespace LzmTW.uSystem.uNet
Public Enum IP4Type
A
B
C
Unknown
End Enum
End Namespace
补充:.NET技术 , VB.NET