如何从IP地址获取网络掩码?


Answers:


15

这不可能。如果可能的话,根本没有理由使用网络掩码,因为它可以自动确定。

网络掩码用于指定“网络”开始和停止的IP范围。此范围是任意的。

例如,使用IP地址192.168.0.140
如果网络掩码为255.255.255.0/24以cidr表示),则IP范围将为192.168.0.1 - 192.168.0.254
如果网络掩码为255.255.255.128/25cidr),则IP范围为192.168.0.129 - 192.168.0.254


3

在大多数情况下,由于无类网络,您不能这样做。给定的IPv4地址可以具有30个不同的网络掩码。


在现代系统的哪种情况下,您可以这样做?
卡森(Karlson)2012年

我不完全理解这个问题,但是如今基本上所有的系统和设备都使用CIDR。
SquareRootOfTwenty2012年

@卡尔森:正如帕特里克所说,无法自动确定何时您的案件属于该规则的例外。您可以查看地址的第一个八位位组,然后从其最高位开始盲目猜测它是A,B,C ...类或任何网络的一部分,但您不知道该地址属于该类的事实,因此您知道网络掩码。实际上,对于某些地址,明智的选择是,地址的旧式“类”是不相关的:以10开头的地址几乎永远不会是A类(/ 8),因为它们几乎总是被子网划分的。
沃伦·杨

@SquareRootOfTwentyThree问题是是否有一种基于目标系统IP的方法来确定所使用的网络掩码。
卡森(Karlson)2012年

@WarrenYoung我知道IP地址的类别,但是您可以猜到IP掩码的类别(在这里我猜是)有超过99%的错误概率。
卡森(Karlson)2012年

2

尽管您无法直接在centos 7中从IP地址确定网络掩码,但是您可以键入“ ip ad”,这将返回IP地址及其相应的子网号。

-bash-4.2 $ ip ad 1:lo:mtu 65536 qdisc noqueue state UNKNOWN qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

   valid_lft forever preferred_lft forever

inet6 ::1/128 scope host 

   valid_lft forever preferred_lft forever

2:eth0:mtu 1500 qdisc pfifo_fast状态UP qlen 1000

link/ether 00:16:3e:77:ca:e9 brd ff:ff:ff:ff:ff:ff

**inet 10.1.0.11/24** brd 10.1.0.255 scope global eth0

   valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fe77:cae9/64 scope link 

   valid_lft forever preferred_lft forever

子网号也存储在以下文件中

/ etc / sysconfig / network-scripts / ifcfg-eth0(其中eth0取决于您的网卡类型)

查找PREFIX设置。它提供的数字是子网掩码

例如PREFIX = 24

如果以上文件中没有PREFIX编号,则您的服务器网络设置将默认为8的子网掩码,该子网掩码将再次通过“ ip ad”命令显示。

如果要更改PREFIX号码,请记住使用systemctl restart network重启网络服务。


1

网络掩码主要用于将同一子网中的本地地址与只能通过网关访问的外部地址区分开。

因此,如果您知道同一子网中的所有(=当前或将来使用的)IP地址,则可以构建一个包含所有IP地址的网络掩码。例如,如果192.168.2.4和192.168.2.253应该位于同一子网中,则网络掩码255.255.255.0(等于ip范围192.168.2.0-255或cidr表示192.168.2.0/24)有效。


@WarrenYoung感谢您指出这一点。我澄清了我的答案。
jofel 2012年

抱歉,但“ netmask 255.255.255.0”表示不是 192.168.2.1-255,而是192.168.2.0-255(如果我们将包括网络和广播)或192.168.2.1-254(如果我们将不包括)
懒惰La
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.