如何查询一个公网的ip(估算了一下公网IP地址的数量)
如何查询一个公网的ip(估算了一下公网IP地址的数量)
2024-09-29 04:15:41  作者:假装嚣张  网址:https://m.xinb2b.cn/sport/sah135374.html

我们知道,每次拔号上网运营商会给你分配一个IP地址,通常每次都不一样。 我记录了355 次拔号得到的IP地址。其中:

237 个地址是各出现了(仅)1次的;50 个地址是各出现了(仅)2次的;6 个地址是各出现了(仅)3次的。

因为公网IP是稀缺资源,于是就想琢磨一下我这里运营商的IP地址池到底有多大。根据这些数据能否估算出地址池的大小N呢?


题图

1) 简单的数学模型

上面的实验中总共得到了293 (237 50 6)个IP地址,反过来,未被选中的地址是 N - 293个。 于是可知:

经过355次拔号,某一特定地址不被选中的概率是 (N - 293)/N;另一方面,仅拔号一次,某一特定的地址不被选中的概率是 (N - 1) / N。

于是我们可以得到下面的方程,并在Mathematica里求数值解(注意要限定实数域,否则会得到很多复数解)。


图:简单模型的方程及其解

显然 N > 293,于是有意义的解是 891.992。这是一个类似于平均值(数学期望)的数。 我们可以说,N在892附近。至于有多近,现在还不清楚,N可能是800,也可能是1000。

不过,这个模型里没有用到[237, 50, 6]这个1,2,3次的分布。这样做对吗?

2) 简单的模拟实验

我准备用Python模拟一下,用到下面一些package。

import randomimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom multiprocessing import Pool

numpy里有一些现成的函数,用很短的代码就可以完成模拟;pandas用来画图,最后为了提升速度会用到多进程。代码在Jupyter Notebook里运行。


图:简单的模拟实验

一次实验的代码其实只有一行,流程是:

生成355个0~n之间的随机数;统计每个数出现的频次;统计每个频次出现的频次(即出现了0, 1, 2, 3... 次的数有多少个),其中出现0次的数目是不需要的。

把实验得到的频次和目标频次进行比较,相等就把计数加1. 对于每个n值,试验10000次,看看有多少命中的。

可以看到峰值确实是在900附近,大约是0.6%的命中率。也就是说,对于N在900附近时,从中取355次地址,大约有0.6%的可能会出现[237, 50, 6]这样的分布。

尽管这个值很低,但我们要看相对的高低,在900附近,是最有可能出现这个分布的。

3) 程序的改进

前面的代码里可能会匹配到[237, 50, 6, 2](即还有2个地址各出现了4次)这样的分布,所以严谨一点,我们可以把匹配目标设为[237, 50, 6, 0, 0, 0]。再长也没有必要了,因为高频次的数量降低是很快的。

把程序改为多进程模式的。4核8线程的CPU把Pool大小设为8,实测CPU占用率能达到100%(而之前确实是1/8左右的占用率)。把每一个N值的模拟次数增加到2千万,这样可以得到较为平滑的曲线。


图:改进的模拟程序

这时可以得到最大概率对应的N值是891, 和简单的数学模型非常一致。

4) 概率公式和概率积分

根据“不尽相异元素的全排列”可以推出,出现[237, 50, 6]这个结果的概率p[n],和n的关系,如下图。 用这个结果画出的曲线(图略)和模拟的完全一致,但速度快得多,而且是完全平滑的。

直接把这个概率“积分”(严格讲是累加),得到的结果是1.6. 为什么不是1呢?

因为这个概率p(n)表示的是对于某一个n,出现[237, 50, 6]这个结果的概率(它的反面是出现其它频次的概率);而我们需要的概率q(n)是指,[237, 50, 6]这个结果的对应的N,100%会落在比如说293~10000之间,那么它落在n的概率是多大呢?

让我们假定这两个概率是正相关的,这样把p(n)的积分归一化,就可以得到q(n)。于是我们用概率公式得到下面归一化的积分曲线。


图:概率公式和概率积分

从图中可以估算出,N 98%的可能会落在700~1200之间。曲线的陡峭程度反映了N的集中程度(如果取样次数比355次更多,结果应该会更集中)。

5) 伯努利试验和二项分布

其实这个问题是概率论中的一类典型问题,可以和伯努利试验及二项分布对应上。

在每次拔号中,选中某一地址为成功,否则为失败。m次拔号中,某个地址被选中k次的分布符合二项分布 b(k, m, p),其中p是被选中的概率(对于大小为n的地址池,p为1/n)。

于是,m次拔号中,被选中k次的地址的总数的期望值为:b(k, m, p) * n。具体如下图所示:


图:基于二项分布的计算

上图中给出了出现1~5次的地址总数随地址池大小n的分布。下图则给出了目标频次[237, 50, 6]附近( /-10%)所对应的n值。比如,当n取值700~1150时,最有可能出现237个1次地址。因为图中是期望值,所以并不意味着在这个范围之外不会出现237个1次地址,只是图中区域是概率最高的部分。这也可以理解,为什么根据3个条件得出的范围并不是严格一致。


图:基于二项分布的结果

6) 结语

本文对“我这里”的公网IP地址的数量这一蛋疼的问题,从数学上进行了推演,从程序上进行了模拟。数学简洁但高深,模拟笨拙但直观。殊途同归,两者得出了基本一致的结果。

本题可以作为码农编程的一个小练习,比如有人用了PHP语言,因为它有高精度的数值计算;有人用了R语言,因为它有现成的统计函数;继续的改进甚至可以考虑使用GPU提升模拟速度。

至于“我这里”是多大的范围,根据公里级的IP地理信息应该可以推测出来。这不是本文的重点。

本题在讨论过程中,得到了色影无忌众多网友的见解,@siliconworm, @TakeThat05, @rks, @pipedream,特此致谢。

  • 做主播都是什么样的人(有人第一份工作是做直播当红人)
  • 2024-09-29有人第一份工作是做直播当红人我没有靠山,我就是自己的靠山作者|思想漪编辑|杨晶打电竞、开网店、当主播、做自媒体今年7月,这些曾经看上去“不入主流”的工种,被教育部正式纳入应届毕业大学生的就业渠道,有了“正规”名分这吸引了今年87。
  • 服装防水剂(纺织服装面料三防整理剂)
  • 2024-09-29纺织服装面料三防整理剂户外运动经常行走穿梭在山野林间,衣服脏了是难免的事,这就要求服装外表要尽量不容易被污渍所沾污,而一旦被沾污之后又要易于洗涤去除“三防整理”(拒水、拒油、防污),属于比较实用有效的整理手段,常用在服装外。
  • excel按条件值快速合并单元格(Excel)
  • 2024-09-29Excel已是老生常谈了:源数据不要合并单元格,不要合并!不过工作就是这样的,团队的执行力总是跟理想相去甚远当拿到的数据表有合并单元格,还要求匹配出合并单元格的内容时,就只有磨练技术了案例:下图1中左边的数据表。
  • 硬度测试方法有什么(你的硬度不达标怎么办)
  • 2024-09-29你的硬度不达标怎么办器大才能活好?x老师可以明确的告诉你,器再大,要是软趴趴的也白扯,女性对于硬度的敏感性远高于长度大俗话说:“男人不硬,女人不爱”这里的硬,不是财力,不是魄力,而是男人的二弟作战时的硬度那么,男性在啪啪。
  • 公用厕所冲水按钮是什么(卫生间里生命按钮)
  • 2024-09-29卫生间里生命按钮高铁上有许多的按钮,例如,紧急制动按钮,座位调节按钮等等,有时让我们分不清楚,旅客经常把卫生间里面的SOS呼叫按钮和冲水的按钮混淆,小编今天给你介绍这两种按钮的怎么区分,让你旅途更加安心,放心,舒心,。
  • 蛤蜊芥菜汤怎么做(蛤蜊芥菜豆腐汤)
  • 2024-09-29蛤蜊芥菜豆腐汤菊子姐姐今天为大家推荐的美味是蛤蜊芥菜豆腐汤,秋冬交替之际,它能提神醒脑,清热降火,营养丰富,而且做法还特别简单,适合全家共享哦!蛤蜊芥菜豆腐汤是菊子姐姐Cooking美食的第190道美食,推荐指数为。
  • 男性睾酮偏高会自己降低吗(男性睾酮少了对身体有6大影响)
  • 2024-09-29男性睾酮少了对身体有6大影响一般来说,男性的性功能和激素有关,而睾酮是男性性腺分泌的雄激素,它影响着男性的方方面面,除了那方面,还会影响脸部,导致胡须和毛发增多等,也会引起喉结突出以及增强心血管系统等如果女性摄入过多睾酮,或者是。
  • 咸宁市汀泗镇最美乡村:最美乡村新江洲镇
  • 2024-09-29咸宁市汀泗镇最美乡村:最美乡村新江洲镇江洲镇位于长江中下游,赣、鄂、皖三省交界的长江中心,四面环水东临湖口,西顶九江市区,南与庐山区新港镇一衣带水,北与湖北浏佐、安徽程营隔水相望全洲总面积108.38平方公里,圩内最高点海拔20m(吴淞高。
  • 山楂红烧肉的做法和功效(这红烧肉果香味浓)
  • 2024-09-29这红烧肉果香味浓山楂,提起便口舌生津不仅如此,它还是一味香料俗话说草蔻助脱骨,山楂可烂肉,制作时放入几颗,让肉类轻松褪下伪装,变得软烂香嫩,又赋予原本油腻的菜肴一份开胃适口的酸甜,山楂&肉,这对天选cp,搭配。
  • 人世间电视剧周秉义出轨了吗 电视剧人世间里最完美的男人是谁
  • 2024-09-29人世间电视剧周秉义出轨了吗 电视剧人世间里最完美的男人是谁电视剧《人世间》里最完美的男人是谁呢?有人说是男一号周秉昆周秉昆有担当,重情义,对自己的妻子视若生命,对自己的朋友两肋插刀,的确算得上是一个好男人但他活得过于沉重,缺少浪漫气息,从女性视角来看,他并不。
  • 2022年中考作文素材(2022年中考作文预测)
  • 2024-09-292022年中考作文预测作文模拟题请以“守护真情”为题写一篇作文要求:①体自选,诗歌除外,不少于600字②达真情实感,力求有创意,不得套作,抄袭③写正确,规范,美观④文中不得出现真实的人名,校名,地名优秀作文展示守护真情人生。
  • 钢结构基本风压规范:钢结构屋面围护结构风荷载标准值如何计算
  • 2024-09-29钢结构基本风压规范:钢结构屋面围护结构风荷载标准值如何计算作者丨易丹萍单位丨中建五局三公司钢结构公司2021年7月15日,住建部网站发布了13本全文强制规范,自2022年1月1日起实施各本通用规范均为强制建设规范,全部条文必须严格执行在《通规》颁布以后,对《。