草庐IT

IP(IPv4)地址ABC划分及私有地址

不入门的菜鸡 2023-04-15 原文

IP地址 = 网络地址 + 主机地址。

分类 信息 公有IP 私有地址 默认网关
A 最高位为0,1字节网络地址,3字节主机地址 1.0.0.0 - 126.0.0.0 10.0.0.0 ~ 10.255.255.255 255.0.0.0
B 最高位为10,2字节网络地址,2字节主机地址 128.0.0.0 - 191.255.255.255 172.16.0.0 ~ 172.31.255.255 255.255.0.0
C 最高位为110,3字节网络地址,1字节主机地址 192.0.0.0 - 223.255.255.255 192.168.0.0~192.168.255.255 255.255.255.0

PS:D类属于广播地址,它以1110开头,E类为11110开头,将来保留使用。

数字127开头的的IP保留给内部使用,即本地网络地址。

  • 区别

    • 公有IP地址:

      组建一个企业级网络,需要去向“电信运营商ISP”申请一个接入Internet的宽带,同时ISP还会给我们分配一个或多个IP地址,这些IP地址可以供我们企业内部上网,这些ISP分配给我们的IP,就是公有IP。

    公有地址(Public address,也可称为公网地址)由Internet NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Internet NIC提出申请的组织机构。通过它直接访问因特网,它是广域网范畴内的。

    • 私有IP地址:

    我们企业或家庭内部组建局域网用的IP,一般都会用私有IP。

    私有地址(Private address,也可称为专网地址)属于非注册地址,专门为组织机构内部使用,它是局域网范畴内的,私有IP禁止出现在Internet中,在ISP连接用户的地方,将来自于私有IP的流量全部都会阻止并丢掉。

    如果在企业内部的电脑要访问Internet,则需要在企业边界上用“NAT技术”将私网IP转成公网IP才能正常的上网。

  • 私有IP地址

    A类有一个8位的前缀,B类的前缀是12位,C类的前缀是16位。
    A类地址来的前八位已经定下来了,就是10(00001010),后面的22位,随意变化,那么范围自然就是10.0.0.0到10.255.255.255。
    B类地址前12位已经定下来了,第一个八位定为172(10101100),第二个八位的前4位定为16(00010000),第一段的8位加上第二段的前4位,这12位是固定下来的。那么后面的20位就是可以随便变化的,所以B类地址的第二段最大值就是31,私有IP范围就是172.16.0.0到172.31.255.255。
    C类地址的前16位都固定了,就是192.168,范围就是192.168.0.0到192.168.255.255

有关IP(IPv4)地址ABC划分及私有地址的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  4. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

  5. ruby - 从另一个私有(private)方法中使用 self.xxx() 调用私有(private)方法 xxx,导致错误 "private method ` xxx' called” - 2

    我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是

  6. ruby-on-rails - 验证电子邮件地址是 Paypal 用户 - 2

    我想验证一个电子邮件地址是否是PayPal用户。是否有API调用来执行此操作?是否有执行此操作的ruby​​库?谢谢 最佳答案 GetVerifiedStatus来自PayPal'sAdaptiveAccounts平台会为您做这件事。PayPal没有任何codesamples或SDKs用于Ruby中的自适应帐户,但我确实找到了编写codeforGetVerifiedStatusinRuby的人.您需要更改该代码以检查他们拥有的帐户类型的唯一更改是更改if@xml['accountStatus']!=nilaccount_status

  7. ruby - 如何在 Ruby 中实现私有(private)内部类 - 2

    来自Java,我正在尝试在Ruby中实现LinkedList。我在Java中实现它的通常方法是有一个名为LinkedList的类和一个名为Node的私有(private)内部类,其中LinkedList的每个对象都作为Node对象。classLinkedListprivateclassNodeattr_accessor:val,:nextendend我不想将Node类暴露给外部世界。然而,通过Ruby中的这个设置,我可以使用这个访问LinkedList类之外的私有(private)Node类对象-node=LinkedList::Node.new我知道,在Ruby1.9中,我们可以使用

  8. ruby - 在 TCPServer (Ruby) 中,我如何从客户端获取 IP/MAC? - 2

    我想在Ruby的TCPServer中获取客户端的IP地址。以及(如果可能的话)MAC地址。例如,Ruby中的时间服务器,请参阅评论。tcpserver=TCPServer.new("",80)iftcpserverputs"Listening"loopdosocket=tcpserver.acceptifsocketThread.newdoputs"Connectedfrom"+#HERE!HowcanigettheIPAddressfromtheclient?socket.write(Time.now.to_s)socket.closeendendendend非常感谢!

  9. ruby 私有(private)类方法助手 - 2

    您好,我正在尝试创建一个帮助程序,用于将ruby​​方法大量定义为私有(private)类方法。通常,可以通过使用private_class_method键工作将方法定义为私有(private)类方法。但我想创建一个以下样式的助手:classPersondefine_private_class_methodsdodefmethod_oneenddefmethod_twoendendend我计划通过以下方式动态定义它,但根本不起作用:classObjectdefself.define_private_class_methods&blockinstance_evaldoprivate&bl

  10. ruby - 使实例方法在运行时私有(private) - 2

    在另一个对象中注册该对象后,我需要将一些实例方法设为私有(private)。我不想卡住对象,因为它必须保持可编辑状态,只是功能较少。而且我不想取消定义这些方法,因为它们是在内部使用的。我需要的是这样的:classMyClassdefmy_methodputs"Hello"endenda=MyClass.newb=MyClass.newa.my_method#=>"Hello"a.private_instance_method(:my_method)a.my_method#=>NoMethodErrorb.my_method#=>"Hello"有什么想法吗?

随机推荐