Как получить следующий IP в диапазоне от Excel - PullRequest
1 голос
/ 10 июля 2009

Я знаю, что должен быть способ:

Мне нужна помощь в получении любого модуля / трюка / скрипта / макроса hot excel, который бы просматривал диапазон IP-адресов и дал мне следующий адрес? например (192.168.1.128) -> (192.168.1.129)

Не уверен, что мне нужны подсети, но я их тоже выброшу. (192.168.1.255) -> (192.168.2.1)

Бьюсь об заклад, это должно быть сделано с помощью VBScript и быстрых и грязных обучающих программ о том, как реализовать это было бы звездным

Заранее спасибо ~

EDIT:

столбец Excel Excel имеет 192.168.1.1, который был введен вручную

столбец Excel E должен иметь 192.168.1.2

Я хочу, чтобы кто-то не вводил это вручную

каков наилучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 10 июля 2009

вам нужно разделить ваш IP-адрес на блоки

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

Это не учитывает подсети, однако, это намного сложнее реализовать, потому что вам нужны битовые маски. Если вы придерживаетесь масок, кратных 8-битным, это не должно быть слишком сложным для обработки.

8 битовых масок варьируются от 1-255 для каждого блока.

Просто проверьте, если

Val(ip_addr(3) + 1))) > 255

тогда обращайтесь с этим правильно

EDIT

для чтения данных из ячейки в Excel просто измените

ip = "192.168.1.1"

до

ip = Range("B1")
0 голосов
/ 14 июля 2009

На основании помощи Эрика: и статья, которую я нашел здесь - это ответ:

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 голосов
/ 11 июля 2009

Я не знаю, что вы хотите сделать с таким списком, но не забывайте, что некоторые значения являются конкретными.

Вам лучше взглянуть на http://en.wikipedia.org/wiki/IP_address, чтобы получить больше информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...