1、满足不同网络对IP地址的需求
2、实现网络的层次化
3、节省IP地址
4、默认子网掩码可以进一步划分,称为可变长子网掩码“VLSM”
有类IP地址规划的缺陷:使用默认掩码的问题:地址范围过大或过小,导致IP地址的浪费!
例1:192.168.1.100/29=255.255.255.248求网络地址、主机地址和广播地址
解:C类网络24位,此借了5位,可以划分出2^5=32个子网,每个子网可以容纳2^3-2=6台主机
块=2^3(主机位数)=256-248(掩码)=8
8的倍数最接近100的为=96
所以:网络地址:192.168.1.96/29
主机地址:192.168.1.97~192.168.1.102
广播地址:192.168.1.103
例2: 现有一个C类网络地址段192.168.1.0/24,请使用变长子网掩码给三个子网分别分配IP地址
需求:三个区域第一个部门需要30个主机,第二个部门需要20个主机,第三个部门需要10个主机
方法一(主机数有点浪费):
3个部门,至少借2位有4个子网,每个部门主机数2^6=62,满足3个部门需求,这时掩码数为/26=255.255.255.192
块=2^6=64
所以:第一个部门网段为:192.168.1.0/26
第二个部门网段为:192.168.1.64/26
第一个部门网段为:192.168.1.128/26
方法二(更加精确划分节约IP地址):
第一个部门30台主机至少保留5位主机位(2^x-2>=30),最多借3位,有8个子网,此时掩码为/27
块=2^5=32
所以:子网地址为:192.168.1.0/27
主机地址范围:192.168.1.1~192.168.1.30
广播地址为:192.168.1.31/27
第二个部门20台主机至少保留5位主机位(2^x-2>=20),最多借3位,有8个子网,此时掩码为/27
块=2^5=32
所以:子网地址为:192.168.1.32/27
主机地址范围:192.168.1.33~192.168.1.62
广播地址为:192.168.1.63/27
第三个部门10台主机至少保留4位主机位(2^x-2>=10),最多借4位,有16个子网,此时掩码为/28
块=2^4=16
所以:子网地址为:192.168.1.64/28
主机地址范围:192.168.1.65~192.168.1.78
广播地址为:192.168.1.79/28
综上:
第一个部门网段为:192.168.1.0/27
第二个部门网段为:192.168.1.32/27
第一个部门网段为:192.168.1.64/28
例3: 某公司有生产部、销售部、财务部、客服部四个部门,每个部门主机数最多不超过50台。若该公司获得了一个C类地址192.168.100.0/24,应该如何划分子网呢?
解:四个部门,至少借2位网络位,每个部门就有62(主机位还剩6位:2^6-2)台主机
块=2^6=64
生产部网段:192.168.100.0/26
销售部网段:192.168.100.64/26
财务部网段:192.168.100.128/26
客服部网段:192.168.100.192/26
思考:如果该公司有五个部门,每个部门主机数最多不超过30台,应该如何划分子网呢?
解:五个部门,至少借3主机位,每个部门就有30(主机位还剩5位:2^5-2)台主机
块=2^5=32
第一个子网:192.168.100.0/27
第二个子网:192.168.100.32/27
第三个子网:192.168.100.64/27
第四个子网:192.168.100.96/27
第五个子网:192.168.100.128/27
例4:子网划分相关面试题
第一问:61.179.150.39/28 子网号为多少?广播号为多少?可用IP地址范围是多少?
解:块=2^4=16
16的倍数最接近39的为=32
所以:子网号为:61.179.150.32/28
广播号为:61.179.150.47/28
可用IP地址范围:61.179.150.33~61.179.150.46
第二问:19.224.17.0/17 可不可以配置在路由器的接口上?如果可以,是为什么?不可以又是为什么?
解:块=2^7=128
所以子网地址为:192.224.0.0/17
可用的地址范围为:192.224.0.1~192.224.127.254
所以19.224.17.0/17 可以配置在路由器的接口上
第三问:37.95.221.16/5 和 41.222.221.16/5 两个地址在不在同一网段,能不能Ping通?为什么?
37.95.221.16/5 块为=2^3=8;8的倍数最接近37的为=32
所以网段地址为:32.0.0.0/5
可用地址段为:32.0.0.1~39.255.255.254
41.222.221.16/5 块为=2^33=8;8的倍数最接近41的为=40
所以网段地址为:40.0.0.0/5
可用地址段为:40.0.0.1~47.255.255.254
所以两个地址不在同一个网段,也不能互相Ping通
第四问:给出第三问的IP地址 37.95.221.16 的子网号和广播号
同上问:子网号:32.0.0.0/5
广播号:39.255.255.255
通过以上例题相信你也大致已经会了,求出这些地址使用块来解是很快的!
2^m=向主机借位后产生的子网个数,m为所借的位数
2^n-2=①向主机借位后产生的每个子网中可用的主机IP数②n为源主机位剔除被借位后的剩余位数 ③-2的原因是因为每个子网中的网络号及广播号不可用
在吹不出褶皱的平静的日子要自己努力发光
也许,不负光阴就是最好的努力,而努力就是最好的自己
©2022-4-24 yu
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=
//1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json
在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用C++代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。用C++代码编写图形界面的问题就是不直观,因此Qt项目开发了专门的可视化图形界面编辑器——QtDesigner(Qt设计师)。通过QtDesigner就可以很方便地创建图形界面文件*.ui,然后将ui文件应用到源代码里面,做到“所见即所得”,大大方便了图形界面的设计。本节就演示一下QtDesigner的简单使用,学习拖拽控件和设置控件属性,并将ui文件应用到Qt程序代码里。使用QtDesigner设计界面在开始菜单中找到「Q
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
我正在编写一个简单的日志嗅探器,它将在日志中搜索表明我支持的软件存在问题的特定错误。它允许用户指定日志路径并指定他们想要搜索多少天前。如果用户关闭日志滚动,日志文件有时会变得非常大。目前我正在做以下事情(虽然还没有完成):File.open(@log_file,"r")do|file_handle|file_handle.eachdo|line|ifline.match(/\d+++-\d+-\d+/)etc...line.match显然会查找我们在日志中使用的日期格式,其余逻辑将在下面。但是,有没有更好的方法来搜索没有.each_line的文件?如果没有,我完全同意。我只是想确保我使
我有一个这样的哈希{55=>{:value=>61,:rating=>-147},89=>{:value=>72,:rating=>-175},78=>{:value=>64,:rating=>-155},84=>{:value=>90,:rating=>-220},95=>{:value=>39,:rating=>-92},46=>{:value=>97,:rating=>-237},52=>{:value=>73,:rating=>-177},64=>{:value=>69,:rating=>-167},86=>{:value=>68,:rating=>-165},53=>{:va
我需要做的就是从CSV文件中获取header。file.csv是:"A","B","C""1","2","3"我的代码是:table=CSV.open("file.csv",:headers=>true)putstable.headerstable.eachdo|row|putsrowend这给了我:true"1","2","3"我已经查看RubyCSV文档几个小时了,这让我发疯。我确信必须有一个简单的单行代码可以将header返回给我。有什么想法吗? 最佳答案 看起来CSV.read会让您访问headers方法:headers=C