Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lck^

Converter IP para binario

Recommended Posts

O endereço IP vem através do HTML, o JS era para pegar o IP e converter para o binario com 32 dígitos para assim poder informar para o usuario o endereco Broadcast, a subrede e a afins.

function calcular() {	
	EndIp = parseInt(document.getElementById('EndIp').value);
	EndMask = document.getElementById('EndMask').value;
	resultado = document.getElementById('resultado').value;

	//Converter Endereco Recebido para Binario
	EndIpB = EndIp.split(".");
	EndIpB = EndIp.toString(2);
	EndIpB="00000000000000000000000000000000"+EndIpB.replace(/\D/g,'');
	EndIpB=EndIpB.slice(-32,-1)+EndIpB.slice(-1);

	alert(EndIpB);
}

Isto é apenas um exemplo, porém não estou conseguindo separar o resultado, alguém conhece uma opção que me auxilie a fazer isto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue calculo (a função converte de decimal para qualquer base informada.

var EndIp = "192.168.126.1";

var	ArrayEndIpB = EndIp.split(".");
var EndIpB = "";

for (i = 0; i < ArrayEndIpB.length; i++) { 
	EndIpB += Converter(ArrayEndIpB[i], 2);
}
alert(EndIpB);
	
	
	
	function Converter(numero, base) {

        var digito = new Array();
        var i = 0;

        if (isNaN(numero) || numero.indexOf(".") > -1) {
          alert("Número inválido");
          return false;
        }

        while (numero != 0) {
          i++;
          digito[i] = numero % base;
          numero = Math.floor(numero / base);  // divisão inteira, ex.: 15 / 2 = 7
        }
		var retorno = "";
        while (i >= 1){
          switch (digito[i]) {
            // Na base 16, os dígitos maiores que 10 são representados por letras:
            case 10: { retorno += "A"; break }
            case 11: { retorno += "B"; break }
            case 12: { retorno += "C"; break }
            case 13: { retorno += "D"; break }
            case 14: { retorno += "E"; break }
            case 15: { retorno += "F"; break }
            default: { retorno += digito[i]; break }
          }
          i--;
        }
		return retorno;
      }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.