#jquery #ip
#jquery #ip
Вопрос:
У меня есть переменная, содержащая IP-адрес.
ip = '192.168.0.1'
есть ли способ, которым я могу получить следующий IP-адрес?
например:
nextip = getnextIP(ip)
Комментарии:
1. Tbh Я не верю, что есть.
2. Можно ли преобразовать его в десятичный, увеличить, а затем преобразовать обратно?
3. Вы можете создать свой собственный без особых сложностей — просто нужно проверить наличие переполнения, чтобы перейти к следующей части, например:
ip = '192.168.0.1'; parts = ip.split("."); parts[3] = "" ((parts[3] * 1) 1);ip = parts.join("."); console.log(ip);
— Я подозреваю, что преобразование в / из двоичного файла было бы намного проще. Редактировать: все побитовые операции javascript выполняются в 32 битах, поэтому, вероятно, не проще преобразовать в двоичный файл.
Ответ №1:
Это должно работать так, как ожидалось:
function getnextIP(ip) {
var parts = ip.split(".");
var n = 0;
for(var i=0; i<parts.length; i ) {
var exp = parts.length-i-1;
n =parts[i] * Math.pow(2, exp*8)
}
n ;
var bin = (n >>> 0).toString(2);
var output = "";
for(var i=0; i<32; i =8) {
var chunk = bin.substr(i,8);
output =parseInt(chunk, 2).toString() ".";
}
return output.substr(0,output.length-1);
}
Комментарии:
1. Спасибо. Похоже, это делает именно то, что мне нужно 🙂