共计 1346 个字符,预计需要花费 4 分钟才能阅读完成。
最近在分析电商网站在各个国家地区的特征,由于埋点记录只有ip,所以需要解析ip获取对应的国家地区等信息
在网上找了一个开源的数据库,提供的格式有mmdb和csv等格式,mmdb是二进制文件。
在看csv文件中记录ip的格式是这个样子的,算是学习了,说白了计算机网络了解的不够
xx.xx.xx.2/24 最简单的说明这个24可以控制当前网段内ip地址的数量
详解IP地址后面斜杠加具体数字
如:xx.xx.xx.2/24
xx.xx.xx.0/24
通俗一点就是,斜杠后面的数字就表示子网掩码,数字具体代表32位子网掩码(二进制形式)中前面的“1”的个数。
而且前面的“ip地址”也不一定是一个ip地址,也可能是一个网络号(末位是0)。
通过后面数字可以将前面的网段进一步细划分成具体的子网。
所以
xx.xx.xx.2/24 ——>表示一个ip地址xx.xx.xx.2,24告诉了这个ip地址所对应的子网掩码。
xx.xx.xx.0/24 ——>表示一个网段,并且24告诉了当前具体的子网掩码。
其实这个就是用CIDR的形式表示的一个网段,或者说子网。
CIDR:无类别域间路由选择,Classless and Subnet Address Extensions and Supernetting
我们知道确定一个子网需要知道主机地址和子网掩码,但用CIDR的形式,可以简单得到两个数值。举例说吧,192.168.0.0/24”就表示,这个网段的IP地址从192.168.0.1开始,到192.168.0.254结束(192.168.0.0和192.168.0.255有特殊含义,不能用作IP地址);子网掩码是255.255.255.0。
上面的子网掩码怎么来的呢?其实关键就在“24”上。我们知道IP地址是四个十进制数组成的,相当于32位二进制。用CIDR表示形式,后一个数字将这32位进行了间隔(以24为例):前24位用”1″表示,后面8位用0表示,得到一个二进制数:
11111111 11111111 11111111 00000000。将其转化为十进制,就是:255.255.255.0了。
例如:192.168.1.0/24表示网段是192.168.1.0,子网掩码是24位,子网掩码为:255.255.255.0,用二进制表示为:11111111 11111111 11111111 00000000 ,这里为什么是24呢,就是因为子网掩码里面的前面连续的“1”的个数为24个,一定要连续的才行。
再给你举个例子,192.168.1.0/28表示的意思是网段是192.168.1.0,子网掩码为:255.255.255.240,用二进制表示为:11111111 11111111 11111111 11110000。
这时候你也许就疑惑了,就是24和28两个字不一样,为什么网段是一样的呢?
24位说明网络位是24位,那么主机位就是32-24=8位了,则子网的IP个数是254个,即是从00000001到11111110.
28位说明网络位是28位,那么主机位4位,则子网的IP个数是14个,即是从00000001到00001110.
正文完
请博主喝杯咖啡吧!