Então, deixe me ser claro…rs!
Terei que desenvolver uma aplicação para armazenar os Ranges de Ips dos clientes, e para calcular tal range
é necessário fazer um cálculo com o IP fornecido e Máscara, assim chegaremos ao número de hosts…dai seria necessário somar esses número de hosts ao ip…
255 255 255 255 -> Decimal
11111111 11111111 11111111 11111111 -> Binario
189 8 0 0 ->IP
11111111 11111111 11000000 00000000 ->Mascara /18
189.8.0.0 /18 -> Range de IP igual 189.8.0.1 to 189.8.63.254 /Max Host(16382)
alguma sugestão de como codificar isso (189.8.0.0 + 16382)??
[quote=robinsonbsilva]Então, deixe me ser claro…rs!
Terei que desenvolver uma aplicação para armazenar os Ranges de Ips dos clientes, e para calcular tal range
é necessário fazer um cálculo com o IP fornecido e Máscara, assim chegaremos ao número de hosts…dai seria necessário somar esses número de hosts ao ip…
255 255 255 255 -> Decimal
11111111 11111111 11111111 11111111 -> Binario
189 8 0 0 ->IP
11111111 11111111 11000000 00000000 ->Mascara /18
189.8.0.0 /18 -> Range de IP igual 189.8.0.1 to 189.8.63.254 /Max Host(16382)
alguma sugestão de como codificar isso (189.8.0.0 + 16382)??
Obrigado pela atenção![/quote]
Veja que a mascara retira um conjunto de octetos. Os que sobram são o numero máximo de hosts.
Vc tem que:
converter a string do ip para um binário ( um long, ou um objeto que manipule Bit a bit como o BitSet)
converter a mascara para um binario
usar operadores binários para aplicar a mascara. O resultado será um numero que é o maximo de hosts.
pegando no primeiro ip e somando 1 a cada iteração até chegar no numero máximo vc tem os ips possiveis.
Somente com a mascara já é possivel saber a qtd de hosts possiveis na rede.
ex: /30 = 2
/29 = 6
/28 = 14
/27 = 30
/26 = 62
/25 = 126
/24 = 256
/23 = 510
Obs: estou desconsiderando o endereço da rede e o de broadcast, s efor necessário é só somar mais 2 em cada range