Hoje cedo, pensei que tinha um URL na minha área de transferência, mas na verdade eu tinha quatro números inteiros de 9 dígitos copiados de uma planilha, que eram números de identificação de um sistema proprietário. Completamente não relacionado à tarefa em questão. Eu colei no Firefox e fiquei surpreso ao descobrir que ele realmente carregava uma página. Já vi notações decimais sem ponto de endereços IPv4 , mas esse número longo é algo muito, muito maior.
714687644714805209715128610715964400 (coloque um HTTP: // na frente)
Como é que isso funciona? Todos os conversores decimais -> IPv4 encontrados na Internet consideram uma entrada inválida. Se eu pegar o endereço IPv4 que ele realmente carrega e executar os mesmos cálculos para convertê-lo em decimal sem ponto, recebo um número muito menor.
Eu li que o ping pode aceitar dwords e fazer alguma conversão, mas não pode converter esse número em um endereço IP. O IPv6 está fora de questão, pois esse host não possui conectividade IPv6.
Que tipo de loucura é essa? Isso me deixou perplexo e com meus colegas de trabalho.
Edit: Está de volta online agora.
Respostas:
Essa é uma pergunta bastante interessante e demorei um pouco para descobrir. A resposta curta é que os últimos 32 bits do número são 3660944368 (em decimal, que pode ser encontrado por
714687644714805209715128610715964400 mod 2^32
)Esse é o valor decimal do endereço IPv4 218.53.147.240 , que pode ser encontrado convertendo-o em base-256
3660944368 = 218*(256^3)+53*(256^2)+147*(256)+240
análogo para escrever um número em decimal (base-10). Por exemplo234 = 2*10^2+ 3*10 + 4
.Como aponta @chritohnide, cada seção de endereços IPv4 pontilhados é chamada de octeto, pois representa 8 dígitos binários. Também é importante notar que os vários formatos de endereços IPv4 (como o decimal pontilhado ou o decimal puro) são apenas maneiras diferentes de representar o número binário de 32 bits em benefício próprio.
Como os endereços IPv4 são números de 32 bits, apenas os últimos 32 bits do número são usados para resolver o endereço. Por que isso é verdade não é tão óbvio. Como outros já apontaram, o número completo se parece muito com um endereço IPv6 em decimal, mas não é um endereço válido.
Observando a especificação Teredo (consulte 4. Endereços Teredo ), o IPv4 do cliente ocupa os últimos 32 bits do endereço IPv6, mas o prefixo do número não corresponde à especificação Teredo (consulte também a Wikipedia ).
fonte
0089:a4d2:471b:45ef:77ed:c70f:da35:93f0