用VB6展开输出IP地址段
例如: 192.168.0.245-192.168.1.15 之间的各个IP地址
Option Explicit
Private Sub Command1_Click()
Const MAX_RANGE As Long = 1000 '最大生成的IP数,防止系统停止响应
Dim sBeginIp As String
Dim sEndIp As String
sBeginIp = "192.168.0.250"
sEndIp = "192.168.1.10"
Dim i As Long
Dim lIP As Long
Dim sIp As String
lIP = CLng("&h" & DotIp2Hex(sBeginIp))
sIp = Hex2DotIp(Hex(lIP))
While sIp <> sEndIp And i < MAX_RANGE
Print sIp '打印点分IP字符串
i = i + 1
lIP = lIP + 1
sIp = Hex2DotIp(Hex(lIP))
Wend
End Sub
'点分IP字符串转换为十六进制串
Private Function DotIp2Hex(ByRef sIp As String) As String
Dim sHex As String
Dim asH As Variant
asH = Split(sIp, ".")
Dim i As Long
For i = 0 To 3
Dim h As String
h = Hex(asH(i))
sHex = sHex & IIf(Len(h) < 2, "0" & h, h)
Next
DotIp2Hex = sHex
End Function
'十六进制串转换为点分IP字符串
Private Function Hex2DotIp(ByRef sIp As String) As String
Dim sHex As String
Dim asH(3) As String
asH(0) = Mid(sIp, 1, 2)
asH(1) = Mid(sIp, 3, 2)
asH(2) = Mid(sIp, 5, 2)
asH(3) = Mid(sIp, 7, 2)
Dim i As Long
For i = 0 To 3
Dim d As Long
d = CLng("&h" & asH(i))
sHex = sHex & "." & d
Next
Hex2DotIp = Mid(sHex, 2)
End Function
Copyright 2008, ©kmlxk@yahoo.com.cn