J'ai un système de sécurité et le paramètre réseau ne permet qu'une adresse IP à trois chiffres. Je ne peux pas le régler sur 192.168.2.100
, je dois plutôt utiliser 192.168.002.100
.
Ces deux adresses IP sont-elles différentes? Dois-je configurer le réseau local de mon routeur 192.168.xxx.xxx
pour qu'il fonctionne correctement? Je ne trouve aucune information solide à ce sujet.
networking
ip
Brock Vond
la source
la source
192.168.2.100
, mais il se plaint), alors je vous suggère d'avoir un mot avec le vendeur (Quelle est la fiabilité du système de sécurité si sa validation d'entrée est si merdique?)0
, mais j'ai rencontré des applications ne prenant pas en charge une adresse IP qui ne comportait pas 3 chiffres par octet.192.168.002.100
c'est ainsi que votre outil représente0xc0a80264
/3232236132
/192.168.2.100
, alors c'est la même chose.Réponses:
Cela dépend de l'outil.
Dans la plupart des cas, les deux seront les mêmes, mais pas toujours.
Par exemple, si vous utilisez un nombre à 3 chiffres commençant par un zéro (ou un numéro à deux chiffres commençant par zéro, merci @ Dietrich-Epp), alors ping suppose que les nombres sont octaux.
la source
inet_addr()
En supposant que tous les logiciels que vous utilisez utilisent des points-décimaux et des sous-réseaux correctement, oui, ils sont identiques.
192.168.0.1, par exemple, n’est que la notation amicale point-décimal de la valeur point-binaire 11000000.10101000.00000000.00000001.
Si vous le tapez comme 192.168.0.1 ou 192.168.000.001, ils sont tous deux égaux à 11000000.10101000.00000000.00000001
la source
C0A80001
3232235521
Cela dépend des outils ou fonctions utilisés par un programme donné pour analyser l'adresse donnée. Microsoft et Linux, ainsi que d'autres systèmes d'exploitation, utilisent une routine compatible POSIX
inet_addr()
pour analyser les adresses.En tant que tel, votre système spécifique peut nécessiter une notation décimale à trois chiffres pour chaque octet, mais ceci n'est pas universel et vous devez veiller à ce que la bonne adresse IP soit entrée.
Bien entendu, seuls les nombres valides pour chaque type fonctionneront. Les nombres octaux, hexadécimaux ou décimaux en dehors de la plage échoueront également ou entraîneront des problèmes. Octal 088, Hex 0xGG ou Decimal 280 sont des exemples non valides.
la source
Comme Lightness Races in Orbit et d’autres l’ont souligné,
La
INET(3)
page de manuel décritinet_addr
et décritinet_aton
les fonctions standard utilisées pour convertir la "notation numérique IPv4 sous forme binaire". Ça ditDonc techniquement, NON , une adresse IP avec des zéros non significatifs n'est pas (toujours) la même que celle sans zéros non significatifs. Dans votre cas cependant,
192.168.2.100
et192.168.002.100
sont identiques, car002 == 2
.Toute interface utilisateur nécessitant que chaque composant ait exactement trois caractères, avec des zéros non requis de manière incorrecte, est cassée.
la source
Certaines implémentations considèrent les octets avec des zéros non significatifs comme des décimales, tandis que d'autres implémentent les octaux. Tant que l'octet est compris entre 0 et 7, cela ne fait aucune différence. Ainsi, par exemple, serait
192.168.002.100
interprété comme192.168.2.100
dans les deux implémentations.Mais si vous deviez saisir une adresse,
192.168.010.100
elle pourrait être interprétée de la même manière192.168.10.100
ou en192.168.8.100
fonction de la mise en œuvre. Il n’est également pas improbable que des implémentations existent, ce qui considérerait les zéros comme une erreur de syntaxe. En outre, il existe des scénarios dans lesquels le logiciel peut exiger que vous utilisiez la représentation canonique pour une raison ou une autre. Pour toutes ces raisons, je vous recommande d’éviter les zéros lorsque vous écrivez une adresse IP.Si vous écrivez un logiciel qui doit analyser une adresse IP, je vous recommanderais d’accepter les zéros non significatifs, mais d’envoyer un avertissement à un emplacement approprié, le cas échéant.
Légèrement liées, il existe des implémentations qui vous permettent d’avoir moins de quatre composants dans la notation en pointillé. Lorsqu'il y a moins de quatre composants, le dernier composant a plus de 8 bits et les composants précédents ont exactement 8 bits. Par exemple
192.168.612
serait effectivement un moyen valide pour écrire192.168.2.100
. Mais encore une fois, l’utilisation de cette notation n’est pas recommandée.la source
Juste un petit conseil: dans certains cas, il est important d’utiliser zéro préfixe dans les adresses IP. Un exemple, est Apache .htaccess nier les règles.
Si vous utilisez quelque chose comme
Apache est tellement stupide qu'il va également bloquer l'accès des adresses 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
Donc, pour vous assurer de ne bloquer aucune adresse IP que vous ne vouliez pas bloquer, vous devez utiliser:
pour être sûr qu'Apache ne bloquera l'accès qu'à partir de l'adresse IP 11.22.33.22.
la source
soyez prudent avec cela. il DOIT être le même , mais il est pas !
Je ne pouvais pas trouver d'explication à cela, mais je peux dire que sur Windows et Linux, les adresses IP avec et sans zéros 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, il n'est pas dépendant de l'outil mais dépend de l'OSI car il semble que je rencontre un problème d'utilisation d'ips comme 10.08.03.100:
linux / debian7 / 8: mêmes résultats avec les outils "ping" et "snmpget"
windows7 / 8/10: mêmes résultats avec les outils "ping" et "telnet"
(désolé, je n'ai pas de fenêtre anglaise sous la main, une erreur indique que l'hôte n'a pas pu être trouvé)
la source
Les deux adresses IP sont différentes.
Pourtant:
Si cela semble déroutant, c'est parce qu'il n'y a pas de norme régissant la manière dont les adresses IP sont censées être écrites. Des programmeurs différents à des moments différents de l'histoire et sur des plates-formes différentes ont donc des idées différentes sur ce qu'il convient de faire.
Les adresses IP sont en fait binaires et les utilisateurs ont tendance à utiliser une notation décimale à points pour représenter les adresses IP. Le logiciel peut accepter diverses bases numériques (décimal, octal, hex) et interpréter les choses de différentes manières en fonction de la manière dont vous l'écrivez. Comment vous écrivez peut indiquer au logiciel la base dans laquelle vous écrivez.
Je vous conseille de ne pas utiliser de zéros non significatifs si vous souhaitez utiliser la notation décimale en pointillés. Certains logiciels considèrent qu'un indicateur signifie que vous entrez un nombre octal. Si vous voulez entrer un nombre décimal, vous n'obtiendrez pas les résultats escomptés.
J'ai posé une question similaire et obtenu de bonnes réponses. Si vous voulez lire les RFC, il y a de bonnes informations à avoir.
la source
Cela devrait fonctionner dans les deux sens. Vous pouvez même faire un ping avec des nombres à trois chiffres et l'ordinateur comprendra l'adresse IP.
Edit : Windows le lira en octal, cela ne fonctionne que pour Linux.
la source
Le zéro non significatif n'a pas de sens. Les octets sont des nombres (base 10) de 0 à 255, pas des chaînes.
Puisque je ne sais pas exactement ce que vous demandez (ou que vous savez quelle question poser :)): Cela dit, l’IP # doit figurer dans le même sous-réseau que votre réseau. Si vous sélectionnez 11.12.13.14 dans un masque de sous-réseau de 192.168.0.0, ce périphérique ne pourra ni parler ni utiliser ce sous-réseau.
la source
inet_addr
et les centaines de milliers d'outils qui en dépendent pour l'analyse des adresses prennent un 0 devant pour signifier que l'octet est donné en notation en base 8. C'est à peine "sans signification".