如何获得下一个IP的范围从Excel
问题描述:
我知道必须有一个办法:如何获得下一个IP的范围从Excel
我需要帮助得到任何热练成模块/诀窍/脚本/宏将看一个IP范围是给我下一个地址了吗? 例如 (192.168.1.128) - >(192.168.1.129)
不知道我需要子网,但也会把它扔出去。 (192.168.1.255) - >(192.168.2.1)
我敢打赌,是必须与VBScript和快速就如何落实脏教程做,这将是恒星
在此先感谢〜
编辑:
Excel列d具有手动输入
192.168.1.1的excel塔E应具有192.168.1.2
我想避免有人手动输入
要达到此目的的最佳方法是什么?
答
你需要以块
Dim ip As String
Dim ip_addr() As String
Dim ip_next As String
ip = "192.168.1.1"
ip_addr = Split(ip, ".")
ip_next = ip_addr(0) & "." & ip_addr(1) & "." & ip_addr(2) & "." & Trim(Str(Val(ip_addr(3) + 1)))
然而,这并不占子网分割您的IP地址,这是非常棘手的实现,因为你需要位掩码。如果你坚持8位掩码的倍数,这不应该太复杂。
对于每个块,8位掩码范围从1-255。
只是检查是否
Val(ip_addr(3) + 1))) > 255
然后妥善处理
编辑
从Excel中的一个单元读取的数据简单地改变
ip = "192.168.1.1"
到
ip = Range("B1")
答
基于关闭埃里克帮助:和文章,我发现here是答案:
Function GetNextIP(text As Variant)
Dim ip As String
Dim ip_addr() As String
Dim ip_next As String
ip = text
ip_addr = Split(ip, ".")
ip_next = Trim(Str(Val(ip_addr(3) + 1)))
If ip_next = 256 Then
ip_next = 0
End If
GetNextIP = ip_addr(0) & "." & ip_addr(1) & "." & ip_addr(2) & "." & ip_next
End Function
记住,0.0是网络地址和.255是广播地址,所以你可能不想排除他们... – 2009-07-10 20:01:54
我会尝试并获得更多的细节,我究竟是什么尝试做...我的问题是一个有点神秘.. – BigBlondeViking 2009-07-10 20:23:28