V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
daijinming
V2EX  ›  程序员

交流一个 IP 地址,计算 10.1.1.30/8 的 网段区间

  •  
  •   daijinming · 2020-12-11 11:37:17 +08:00 · 3770 次点击
    这是一个创建于 1472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    又拿起 TCP/IP 教程学习起来,这种 IP 地址的写法感觉还不是太熟悉,哪位能给分析下,这个 IP 如何计算网段区间

    27 条回复    2020-12-12 19:19:05 +08:00
    lululau
        1
    lululau  
       2020-12-11 11:44:36 +08:00
    slash 后面的数是个十进制表示的数,它表示的是 IP 数值的二进制表示的位数
    Te11UA
        2
    Te11UA  
       2020-12-11 11:45:04 +08:00
    百度 ip 地址计算
    这些工具都很明晰地告诉你是怎么算的
    ThirdFlame
        3
    ThirdFlame  
       2020-12-11 11:45:06 +08:00
    10.0.0.0~10.255.255.255
    wql
        4
    wql  
       2020-12-11 11:53:27 +08:00 via Android
    /8 就是点分十进制的第一段,10.0.0.0-10.255.255.255
    Wincer
        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'))
    ```
    Dvel
        6
    Dvel  
       2020-12-11 12:09:48 +08:00
    子网掩码的另一种写法。
    写 x.x.x.x/8 和 255.0.0.0 是一样的。
    6IbA2bj5ip3tK49j
        7
    6IbA2bj5ip3tK49j  
       2020-12-11 12:13:27 +08:00
    /8 就是前 8 位不变动,只变后面 24 位。
    /24 就是前 24 位不动,只动后面 8 位,最常见就是 192.168.1.x/24 。
    ccbikai
        8
    ccbikai  
       2020-12-11 12:16:48 +08:00
    关键字 IP CIDR
    user8341
        9
    user8341  
       2020-12-11 12:17:18 +08:00
    3 、4 、5 、6 楼都对。
    user8341
        10
    user8341  
       2020-12-11 12:17:41 +08:00
    漏了一个,7 楼也对
    sdh
        11
    sdh  
       2020-12-11 12:20:08 +08:00 via Android
    9,10 楼也对
    user8341
        12
    user8341  
       2020-12-11 12:35:57 +08:00
    10 PRINT "对"
    20 GOTO 10
    JJstyle
        13
    JJstyle  
       2020-12-11 12:48:52 +08:00 via iPhone
    8 楼也算对这是 ip 或者 ip 范围的一种表达方式,这种表达方式就叫 cidr
    fasionchan
        14
    fasionchan  
       2020-12-11 13:13:40 +08:00   ❤️ 2
    来关注我的网络协议教程,快写到 IP 了: https://www.yuque.com/coding-fan/network
    huaxing0211
        15
    huaxing0211  
       2020-12-11 13:20:22 +08:00
    综上,楼上都对!
    mcone
        16
    mcone  
       2020-12-11 13:28:21 +08:00   ❤️ 1
    @fasionchan 要是真的有干货,不需要每个回帖都推广的,你这样每个回帖都是推广,还推广不到点子上(例如你这个链接哪里解决楼主的问题了?),只会引来更多人的反感。

    @livid 这个 ID 的发帖和回帖放在一起,似乎可以做一个很好的 spam pattern 了……
    Livid
        17
    Livid  
    MOD
       2020-12-11 13:30:44 +08:00   ❤️ 1
    @mcone 谢谢举报。这种就是这里所描述的链接搬运:

    https://www.v2ex.com/help/spam

    看了一下,那个账号之前已经有过违规记录,这次就彻底 ban 了。
    iptables
        18
    iptables  
       2020-12-11 13:53:39 +08:00
    mijazz
        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 如果错误请指出
    iptables
        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 ,得到广播地址
    Tink
        21
    Tink  
       2020-12-11 14:54:13 +08:00
    cidr 这种写法就是用 /后面的数字控制前面 ip 地址的掩码,说简单点就是前几位可以变
    jaylee4869
        22
    jaylee4869  
       2020-12-11 18:58:32 +08:00
    KenGe
        23
    KenGe  
       2020-12-11 19:19:34 +08:00
    proxychains
        24
    proxychains  
       2020-12-12 01:53:18 +08:00   ❤️ 1
    @fasionchan 哇,我一直在追更你的文章呐,不过需要注册就没回复.期待大佬的文章
    baobao1270
        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=
    xyjincan
        26
    xyjincan  
       2020-12-12 17:45:48 +08:00 via Android
    https://dev.aduo.xyz/tools/ip-tools.html

    写了个计算器,不想再算了
    CrazyBoyFeng
        27
    CrazyBoyFeng  
       2020-12-12 19:19:05 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2863 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:23 · PVG 22:23 · LAX 06:23 · JFK 09:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.