Vous pouvez voir pourquoi ils l'ont fait ainsi de lui-même source:
Lorsqu'une adresse en trois parties est spécifiée, la dernière partie est interprété comme un 16- quantité de bit et placé dans le plus à droite de deux octets de l'adresse réseau. Cela rend le format d'adresse en trois parties commode pour spécifier les adresses de réseau de classe B comme 128.net.host.
Donc, il semble que 144.122.1
équivaut à 144.122.0.1
.
L'ensemble des commentaires sur le nombre de parties de l'adresse IP textuelle est extrait ci-dessous:
Lorsque seule une partie est donnée, la valeur est stockée directement dans l'adresse de réseau sans réarrangement d'octets.
Lorsqu'une adresse en deux parties est fournie, la dernière partie est interprétée comme une quantité de 24 bits et placée dans le plus à droite de trois octets de l'adresse réseau. Cela rend le format d'adresse en deux parties pratique pour spécifier des adresses réseau de classe A comme net.host.
Lorsqu'une adresse en trois parties est spécifiée, la dernière partie est interprétée comme une quantité de 16 bits et placée dans le plus à droite de deux octets de l'adresse réseau. Cela rend le format d'adresse en trois parties commode pour spécifier les adresses de réseau de classe B comme 128.net.host.
Lorsque quatre parties sont spécifiées, chacune est interprétée comme un octet de données et affectée, de gauche à droite, aux quatre octets d'une adresse IPv4.
En effet. .Net analyse 144.122.1 comme 144.122.0.1 et 144.1 comme 144.0.0.1. Ce serait bien de savoir pourquoi. BTW, vous ne mentionnez pas quelle fonction fait cela. – spender
Le nom de la fonction se trouve dans la légende: isIPv4LiteralAddress. En fait, le paquet est sun.net.util.IPAddressUtil. Merci, je l'ai ajouté à la question. – Huseyin