又拿起 TCP/IP 教程学习起来,这种 IP 地址的写法感觉还不是太熟悉,哪位能给分析下,这个 IP 如何计算网段区间
1
lululau 2020-12-11 11:44:36 +08:00
slash 后面的数是个十进制表示的数,它表示的是 IP 数值的二进制表示的位数
|
2
Te11UA 2020-12-11 11:45:04 +08:00
百度 ip 地址计算
这些工具都很明晰地告诉你是怎么算的 |
3
ThirdFlame 2020-12-11 11:45:06 +08:00
10.0.0.0~10.255.255.255
|
4
wql 2020-12-11 11:53:27 +08:00 via Android
/8 就是点分十进制的第一段,10.0.0.0-10.255.255.255
|
5
Wincer 2020-12-11 12:07:19 +08:00
python:
``` from ipaddress import IPv4Network net = IPv4Network("10.1.1.30/8", strict=False) >>> net.network_address, net.broadcast_address (IPv4Address('10.0.0.0'), IPv4Address('10.255.255.255')) ``` |
6
Dvel 2020-12-11 12:09:48 +08:00
子网掩码的另一种写法。
写 x.x.x.x/8 和 255.0.0.0 是一样的。 |
7
6IbA2bj5ip3tK49j 2020-12-11 12:13:27 +08:00
/8 就是前 8 位不变动,只变后面 24 位。
/24 就是前 24 位不动,只动后面 8 位,最常见就是 192.168.1.x/24 。 |
8
ccbikai 2020-12-11 12:16:48 +08:00
关键字 IP CIDR
|
9
user8341 2020-12-11 12:17:18 +08:00
3 、4 、5 、6 楼都对。
|
10
user8341 2020-12-11 12:17:41 +08:00
漏了一个,7 楼也对
|
11
sdh 2020-12-11 12:20:08 +08:00 via Android
9,10 楼也对
|
12
user8341 2020-12-11 12:35:57 +08:00
10 PRINT "对"
20 GOTO 10 |
13
JJstyle 2020-12-11 12:48:52 +08:00 via iPhone
8 楼也算对这是 ip 或者 ip 范围的一种表达方式,这种表达方式就叫 cidr
|
14
fasionchan 2020-12-11 13:13:40 +08:00 2
来关注我的网络协议教程,快写到 IP 了: https://www.yuque.com/coding-fan/network
|
15
huaxing0211 2020-12-11 13:20:22 +08:00
综上,楼上都对!
|
16
mcone 2020-12-11 13:28:21 +08:00 1
@fasionchan 要是真的有干货,不需要每个回帖都推广的,你这样每个回帖都是推广,还推广不到点子上(例如你这个链接哪里解决楼主的问题了?),只会引来更多人的反感。
@livid 这个 ID 的发帖和回帖放在一起,似乎可以做一个很好的 spam pattern 了…… |
17
Livid MOD |
18
iptables 2020-12-11 13:53:39 +08:00
IPv4 Subnet Calculator
https://www.vultr.com/resources/subnet-calculator/ |
19
mijazz 2020-12-11 14:15:41 +08:00
10.1.1.30 参考 4 楼的说法, 这四个数字是为了给人能看清楚来划分的.
点分十进制的意思就是, ipv4 地址共有 32bit 组成, 分出来 4 段, 所以每一段长度为 8bit, 最高表示十进制的 255. 并且根据 ABC 类地址来划子网 10.1.1.30 其实是 0000 1010 0000 0001 0000 0001 0001 1110 来组成的 每 8bit 取一断点化十进制就是 ipv4 地址的常见形式. 这个时候为了建立子网来进行路由, 进而有子网掩码这东西, 假设你的子网掩码(subnet mask)在这里是 255.0.0.0 其实就是 1111 1111 0000 0000 0000 0000 0000 0000 上述两个二进制, 你如果对他们做 AND 运算, 你得到的就是 5 楼给你的 IPv4Address 0000 1010 0000 0000 0000 0000 0000 0000 -> 10.0.0.0 , 我没记错的话他叫网络地址, 在这个 10.0.0.0/255.0.0.0 的网络之外, 它只是一个大子网, 对于外部来说会减少路由表的 entry 增加效率, 因为我只需要知道这个网络下对应的 ip 硬怼给它就行了, 没必要一个 ip 多开一个路由表 entry. 相对应的网络里最后一个主机号 / 或者是网络号后的 bit 全填 1, 就是用于 broadcast, 在这里就是 0000 1010 (第 9 位开始全是 1) 1111 1111 1111 1111 1111 1111 -> 10.255.255.255 所以有 10.0.0.0/255.0.0.0 <=>10.0.0.0/8 <=> 10.0.0.0 ~ 10.255.255.254 然后 VLSM/Variable Length Subnet Mask, 因为发现直接通过 ABC 类地址划出来的子网太浪费? 然后就有引入 CIDR/无分类编址 划分网络 /辨认主机可以使用网络号和主机号, 此时他们两个的分界线就是 /后面的这个十进制数 8 10.0.0.0/8 <=> 10.0.0.0/255.0.0.0 如果是 /20, subnetmask 的前 20 位就都是 1, 假设里面有个地址是 172.17.3.1, 按你题目的表示就是 172.17.3.1/20 1010 1100 0001 0001 0000 0011 0000 0001 (ip) 1111 1111 1111 1111 1111 0000 0000 0000 (/20) <=> 255.255.240.0 做 AND 可以很容易得到 1010 1100 0001 0001 0000 0000 0000 0000 -> 172.17.0.0(网络号) 还是上面的操作, 第 21 位开始全是 1 1010 1100 0001 0001 0000 (21 位开始) 1111 1111 1111 -> 172.17.15.255 所以 172.17.0.0/20 <=> 172.17.0.0/255.255.240.0 <=> 172.17.0.0 ~ 172.17.15.255 小弟还是个在校大学生 hhhh 如果错误请指出 |
20
iptables 2020-12-11 14:17:34 +08:00
IP 地址 10.1.1.30/8
/8 也就是 255.0.0.0 (二进制前 8 位为 1,后面都是 0 ) 子网掩码和 IP 转换成二进制,分别是 11111111 . 00000000 . 00000000 . 00000000 00001010 . 00000001 . 00000001 . 00011110 按位与( AND )运算: 00001010 . 00000000 . 00000000 . 00000000 也就是十进制的 10.0.0.0,得到网络地址 子网掩码等于 0 的部分是后 24 位,因此将网络地址后 24 位设置为 1,即 00001010 . 11111111 . 11111111 . 11111111 也就是十进制的 10.255.255.255 ,得到广播地址 |
21
Tink 2020-12-11 14:54:13 +08:00
cidr 这种写法就是用 /后面的数字控制前面 ip 地址的掩码,说简单点就是前几位可以变
|
22
jaylee4869 2020-12-11 18:58:32 +08:00
IP to CIDR: https://ip2cidr.com/bulk-ip-to-cidr-converter.php
CIDR to IP: https://www.ipaddressguide.com/cidr |
23
KenGe 2020-12-11 19:19:34 +08:00
|
24
proxychains 2020-12-12 01:53:18 +08:00 1
@fasionchan 哇,我一直在追更你的文章呐,不过需要注册就没回复.期待大佬的文章
|
25
baobao1270 2020-12-12 08:04:06 +08:00
Address: 10.1.1.30 00001010 .00000001.00000001.00011110
Netmask: 255.0.0.0 = 8 11111111 .00000000.00000000.00000000 Wildcard: 0.255.255.255 00000000 .11111111.11111111.11111111 => Network: 10.0.0.0/8 00001010 .00000000.00000000.00000000 (Class A) Broadcast: 10.255.255.255 00001010 .11111111.11111111.11111111 HostMin: 10.0.0.1 00001010 .00000000.00000000.00000001 HostMax: 10.255.255.254 00001010 .11111111.11111111.11111110 Hosts/Net: 16777214 (Private Internet) http://jodies.de/ipcalc?host=10.1.1.30&mask1=8&mask2= |
26
xyjincan 2020-12-12 17:45:48 +08:00 via Android
|
27
CrazyBoyFeng 2020-12-12 19:19:05 +08:00
|