95 votes

Les adresses IP avec et sans zéros initiaux sont-elles les mêmes ?

J'ai un système de sécurité et le paramètre réseau n'autorise qu'une adresse IP à trois chiffres. Je ne peux pas le régler sur 192.168.2.100 à la place, je dois utiliser 192.168.002.100 .

Ces deux adresses IP sont-elles différentes ? Dois-je configurer le réseau local de mon routeur pour qu'il soit tout à fait 192.168.xxx.xxx pour que cela fonctionne correctement ? Je ne trouve aucune information solide à ce sujet.

0voto

OldSkoolDev Points 98

Juste un petit conseil : Dans certains cas, il est important d'utiliser des préfixes nuls dans les adresses IP. Par exemple, les règles de refus de Apache .htaccess.

Si vous utilisez quelque chose comme

deny from 11.22.33.22

Apache est tellement stupide qu'il bloque également l'accès depuis les IP suivantes :

111.22.33.22

11.22.33.221

211.22.33.221

et en général, toute adresse IP qui comprend 11.22.33.22

Ainsi, pour être sûr de ne pas bloquer des IP que vous n'aviez pas l'intention de bloquer, vous devriez utiliser :

deny from 011.022.033.022

pour être sûr qu'Apache bloquera l'accès uniquement à partir de l'adresse IP 11.22.33.22.

0voto

Mitch Points 340

Faites attention avec ça. DEVRAIT être le même, mais il est PAS !
je n'ai pas pu trouver d'explication à cela mais je peux définitivement dire que sous Windows et sous linux les adresses IP avec et sans zéros non significatifs ne sont PAS les mêmes ! peut-être que cela a à voir avec la conversion d'autres formats comme hex ou binaire.

D'après mon expérience avec Windows et Linux, cela ne dépend pas de l'outil mais du système d'exploitation, car je rencontre des problèmes en utilisant des adresses IP comme 10.08.03.100 :

  • note : "10.08.0.1" et 10.09.0.1 n'ont pu être trouvés
  • note : "10.010.0.1" est résolu en 10.8.0.1

linux/debian7/8 : mêmes résultats avec les outils "ping" et "snmpget".

user@test:~$ ping 10.7.0.1
PING 10.7.0.1 (10.7.0.1) 56(84) bytes of data.
^C
--- 10.7.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.07.0.1
PING 10.07.0.1 (10.7.0.1) 56(84) bytes of data.
^C
--- 10.07.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
^C
--- 10.8.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.08.0.1
**ping: unknown host 10.08.0.1**
user@test:~$ ping 10.9.0.1
PING 10.9.0.1 (10.9.0.1) 56(84) bytes of data.
^C
--- 10.9.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.09.0.1
ping: unknown host 10.09.0.1
user@test:~$ ping 10.10.0.1
PING 10.10.0.1 (10.10.0.1) 56(84) bytes of data.
^C
--- 10.10.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.010.0.1
PING 10.010.0.1 (10.8.0.1) 56(84) bytes of data.
^C
--- 10.010.0.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1001ms

windows7/8/10 : mêmes résultats avec les outils "ping" et "telnet".

(désolé, je n'ai pas de Windows anglais sous la main, l'erreur dit que l'hôte n'a pas pu être trouvé)

C:\Users\user>ping 10.7.0.1

Ping wird ausgeführt für 10.7.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.07.0.1

Ping wird ausgeführt für 10.7.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.8.0.1

Ping wird ausgeführt für 10.8.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.08.0.1
Ping-Anforderung konnte Host "10.08.0.1" nicht finden. Überprüfen Sie den Namen,

C:\Users\user>ping 10.9.0.1

Ping wird ausgeführt für 10.9.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.09.0.1
Ping-Anforderung konnte Host "10.09.0.1" nicht finden. Überprüfen Sie den Namen,

C:\Users\user>ping 10.10.0.1

Ping wird ausgeführt für 10.10.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.010.0.1

Ping wird ausgeführt für 10.8.0.1 mit 32 Bytes Daten:
STRG-C
^C

-4voto

Les deux adresses IP sont différentes.

Cependant :

  • Les gens les considèrent généralement comme identiques.
  • Certains logiciels les considèrent comme identiques.
  • Certains logiciels, sur certaines plateformes, les considèrent comme différents.

Si cela peut prêter à confusion, c'est parce qu'il n'existe pas de norme régissant la manière dont les adresses IP sont censées être écrites, de sorte que différents programmeurs à différents moments de l'histoire, et sur différentes plates-formes, avaient tous des idées différentes sur ce qu'il fallait faire.

Les adresses IP sont en fait binaires, et les gens ont tendance à utiliser une notation décimale en pointillés pour représenter les adresses IP. Les logiciels peuvent accepter différentes bases numériques (c'est-à-dire décimales, octales, hexagonales) et interpréter les choses de différentes manières en fonction de la façon dont vous les écrivez. La façon dont vous l'écrivez peut indiquer au logiciel dans quelle base vous écrivez.

Je vous le conseille : ne pas utiliser de zéros en tête si vous voulez utiliser la notation décimale en points. Certains logiciels considéreront que ce drapeau signifie que vous saisissez un nombre octal. Si vous voulez saisir un nombre décimal, vous n'obtiendrez pas les résultats escomptés.

J'ai demandé à un question similaire et a reçu de bonnes réponses, donc si vous voulez vous documenter sur les RFC, il y a de bonnes informations à y trouver.

-6voto

David Points 637

Cela devrait fonctionner dans les deux cas. Vous pouvez même envoyer un ping avec des nombres à trois chiffres et l'ordinateur comprendra l'adresse IP.

Modifier : Windows le lira en octal, cela ne fonctionne que pour Linux.

-13voto

user402455 Points 36

Le zéro de tête est sans signification. Les octets sont des nombres (en base 10) de 0 à 255, et non des chaînes de caractères.

Puisque je ne sais pas exactement ce que vous demandez (ou que vous savez quelle question poser :)) : Cela dit, l'IP # doit être dans le même sous-réseau que votre réseau. Si vous choisissez 11.12.13.14 dans un masque de sous-réseau de 192.168.0.0, cet appareil ne pourra pas parler ou utiliser ce sous-réseau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X