如何获得下一个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

我想避免有人手动输入

要达到此目的的最佳方法是什么?

+0

记住,0.0是网络地址和.255是广播地址,所以你可能不想排除他们... – 2009-07-10 20:01:54

+0

我会尝试并获得更多的细节,我究竟是什么尝试做...我的问题是一个有点神秘.. – BigBlondeViking 2009-07-10 20:23:28

你需要以块

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") 

我不知道你想用这样一个列表来做什么,但不要忘记一些值是特定的值。

你最好看看http://en.wikipedia.org/wiki/IP_address以获得更多的信息。

基于关闭埃里克帮助:和文章,我发现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