【Excel】将IP按照IP地址(v4)增长序列排序

Background:

Excel列中,有多个net-block, 将这些net-block按照IP地址(v4)自己的大小从小到大排序。

Idea:

IPv4地址的格式是点分十进制的,也就是说每一个点前的数字都有自己相应的power权值,只要找到这个权值,再将IP地址以“."分开,分别乘以其权值,就可以得到某个IP唯一对应的一个反应其真实大小的十进制值。

Solution:

以下面这几个IP block为例,D2 到 G2是为了去find一个IP网段这种格式中的“.”和“/”,具体的语句,以D2为例就是 = FIND(".",$A2,1),这样就找到了第一个“.”在A2中的位置,G2是“/”在A2中的位置。有了这几个位置信息之后,就可以拿来分割IP地址了。

H2到K2 都是为了显示分割后的IP地址。用到的是MID这个函数,用于返回一个字符串中,特定的位置到特定位置之间的部分。

L1到O1分别是点分十进制分别的每一段的权值。以10.15.101.0为例,最后一段0就是自然是0,所以权值为1,倒数第二段101,权值应该是2的8次方256,以此类推,倒数第三段15的权值是2的16次方65536,倒数第四段10的权值就是2的24次方。

然后把H2到K2中每一段的值,分别乘以其权值,然后相加,就可以得到这个IP唯一对应的一个十进制数值。我把这个唯一值放进了P列,也放到了C列,主要是为了一会儿把它复制出去的时候方便。把它不带格式的复制之后,按照从小到大排序就可以了。

我这个图表里不止有这6个数据,整体的效果如下

上边的这个 In Use和Not In Use 是我为了统计是否IP在用加上去的,大家可以忽略。

时间: 2024-10-11 10:50:08

【Excel】将IP按照IP地址(v4)增长序列排序的相关文章

Rocks 头结点更改public IP 上网IP地址

大家好,双十一光棍节来了,疯狂购物的同时,别忘了晓晓神给大家带来的千金换不来的小知识点哦.O(∩_∩)O! Rocks 头结点更改  public  IP  上网IP地址 安装之前啊咱们注意几点和学习几个概念: ------------------------------------------------------------------ Definitions: >> ----------- >>1. <frontend_name> - the short nam

java 获取本机ip及mac地址

package com.achun.test; import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration; public class HelloWorld { public static void main(String[] args) { // TODO Au

老男孩教育每日一题-2017年4月26日-通过访问日志access.log统计IP和每个地址访问的次数

通过访问日志access.log统计IP和每个地址访问的次数 101.226.61.184 - - [22/Nov/2015:11:02:00 +0800] "GET /mobile/sea-modules/gallery/zepto/1.1.3/zepto.js HTTP/1.1" 200 24662 "http://m.oldboyedu.com/mobile/theme/oldboyedu/home/index.html" "Mozilla/5.0 

Android -- 获取IP和MAC地址

通过InetAddress.getLocalHost()得到始终是"127.0.0.1",要想得到真正的网络ip地址要通过下面的方法: 首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下: <uses-permission android:name="android.permission.INTERNET"/> <!--必写--> <uses-permission android:name="a

C#获取IP及MAC地址 方法

C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.InteropServices; public class getIP { [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int

获取本机IP、mac地址、计算机名

python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid >>> def get_mac_address(): mac = uuid.UUID(int = uuid.getnode()).hex[-12:] return ':'.join([mac[e:e+2] for e in range(0,11,2)]) >>> get_m

绑定网关IP和MAC地址时显示“ARP项添加失败:拒绝访问”的处理方法

绑定网关IP和MAC地址时显示"ARP项添加失败:拒绝访问" Win7系统,用arp -s命令在绑定网关IP和MAC地址时,总是提示 ARP 项添加失败: 拒绝访问.( 用管理员身份运行cmd也无效.)未找到原因. 后来google找到了另一个命令,搞定! 具体操作如下: 1.CMD中输入: netsh i i show in 然后找到本地连接对应 我的是Win7系统,今天用arp -s命令在绑定网关IP和MAC地址时,总是提示"ARP 项添加失败: 拒绝访问."(

CIDR详解和ip最长地址前缀匹配

1.CIDR是什么 无类域间路由(CIDR)编址方案 摒弃传统的基于类的地址分配方式,允许使用任意长度的地址前缀,有效提高地址空间的利用率. 就是一个ip加一个网络掩码,不过这个掩码不是之前只有3个值(A类:8,B类:16,C类:24),而是0-32随意的一个值. 例如: 208.12.128.0/17 2.如何理解CIDR格式 上图 可以理解为一个从0到(2^32-1)长的线段. 掩码32表示n个ip的点,数量n是2^32. 掩码31表示n个小线段1,每个线段1包含2(2^(32-31))个i

php禁用某ip或者ip地址段访问

因为还没有深入学习Apache和nginx 所以用PHP写了一个可以禁用地址的小程序 用法 <?php include("banIP.php");?>即可 禁用单个ip: <?php //禁用ip地址 $ip=$_SERVER["REMOTE_ADDR"]; $ban=file_get_contents("ban.dat"); if(stripos($ban,$ip)) { die("Your IP Address i