Войти

Показать полную графическую версию : VBS - как по диапазону IP получить маску


God-of-Chaos
10-08-2016, 02:46
подскажите, как на vbs сделать скрипт который по диапазону ip вычисляет битность маски (маску)

к примеру входные данные (включая адрес сети и бродкаст):

192.168.153.0 - 192.168.153.127


данные на выходе:

192.168.153.0/25 или 255.255.255.128


или хотя бы по какой формуле вычисляется CIDR по диапазону IP

greg zakharov
10-08-2016, 15:01
Насколько помню делается это примерно так (без жестких проверок айпишника и маски):
(function(ip, mask) {
var arr = mask.split('.'),
cidr = 0;

for (var i = 0, x = 0; i < arr.length; i++) {
x = x * 256 + parseInt(arr[i]);
}

cidr = x.toString(2).indexOf('0');

WScript.echo(ip + '/' + cidr);
}(
WScript.Arguments.length !== 2
? (function() {
WScript.echo('Usage: ' + WScript.ScriptName + ' <ip> <mask>');
WScript.Quit(1);
}())
: WScript.Arguments.Unnamed(0), WScript.Arguments.Unnamed(1)
));




© OSzone.net 2001-2012