ip地址开发场景问题

IP地址和子网划分学习笔记之《IP地址详解》 在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文。 IP地址和子网划分学习笔记相关篇章: 1、IP地址和子网划分学习笔记之《预备知识:进制计数》 2、IP地址和子网划分学习笔记之《IP地址详解》 3、IP地址和子网划分学习笔记之《子网掩码详解》 4、IP地址和子网划分学习笔记之《子网划分... 阅读详情

        这种问题一般是出现在我们的项目日志中,可能想去收集某一个时间段内,或者说时某一个时间点的ip地址,或者说是想从大量数据中,选出ip地址出现次数最多的ip。大概是分为这几个问题。

1.亿万级数据中如何快速取出某一天的ip地址。

        这里面提到了如何快速取出某一天的ip地址,那么这里面我们是不去考虑缓存redis,或者说是数据库性能包括读写分离,主从集群这样的设计的。那么如何能够在这个基础之上,去进行优化。

        因此我们需要从数据结构的角度去入手,快速定位的结构,肯定首先想到的就是hashmap,那么这个节点的key和value怎么设计?这里就可以将key设定为某一天,然后节点就是一个链表,让他这样定位进行存储就可以了。

2.亿万级数据中如何快速取出某一个时间段的ip地址。

        当遇到这个问题的时候,因为是范围查询,我的第一个想法就是b+树,但是这个b+树无论是在代码里实现起来还是说维护起来都是成本很高,并且很占内存。因此我第二个想法是跳表skiplist,但是对于说是利用原生态的代码进行实现,还是也有一定的成本。所以我们把思路回到第一个问题,能否直接将map节点的key改成一个范围值,对应的范围全部映射到这个节点里面,这样还能提高查询效率,不免为一个很好的角度。

3.亿万级数据中,内存有限的情况下,如何快速统计出ip出现次数最多的ip地址。

        当遇到这个问题的时候,我的第一反应是这类似于topk问题。首先明确的一点,想要快速统计,那么就是外边redis这样的缓存。那么这里是直接利用操作系统的内存,应该如何设计?可能第一个想法就是处理top几?一般就是采用堆的流式计算,外加多线程去提高效率。但是有个前提就是,内存是不够的,无法一次性去放入很多数据。因此我们需要采用外部设备,例如硬盘来相互配合。所以,我们不得不将这整体的数据先放到硬盘里面,再将硬盘里的数据读入到缓存里面进行计算。

        好了大概思路有了,那么问题来了?我们把数据分散存储在硬盘中,bane输入内存的数据是什么呢,输入之后又是如何进行计算的,输出的数据是什么,输出的数据如何进行存储,最后的数据又如何进行汇总统计,其实这都是问题。

        如果说,我们的数据可以在内存里面全部存放,那ok,直接流式计算,输入数据,如果最小堆没有满,如果堆里没有该数据,则放入,如果堆满了,就将该数据的计数加1,如果当前元素计数大于堆顶元素,则堆顶元素移除,当前元素放进去。

        好了,那么现在我们硬盘里的数据已经分好了,输入内存进行计算,输出的数据是排好序的,我们再对排好序的前几行数据进行汇总,再次形成多个排好序的文件,重复输入内存计算的操作,那么最后得出来的那个文件是不是就是出现次数最多的呢?

        其实答案不是的,因为我们忘记考虑了一点,就是假如A地址有100个,B地址有20个,如果分为10个文件,其中A被平均的分配到10个文件里面,但是B却集中在了其中的一个里面,结果就会出现,其中1个A文件的ip地址在计算次数的过程中会被过滤,那么如果出现类似B的C,D等地址,最终的统计结果将会导致不正确。所以,我们在对文件进行初次分片的时候,就应该将相同的ip地址放到一起,那么如何做到呢?第一个想法就是对ip地址进行模运算就可以了,这样就可以做到相同的ip地址放到一个文件里,最后再进行堆的计算就可以了。

        

IP地址应用场景如何划分的 IP地址在计算机网络中有广泛的应用场景,涵盖了各个领域。数据包传输:IP地址用于标识和路由数据包,确保它们在网络中正确传递到目标设备。协议通信:在传输层,IP地址与端口号共同构成套接字,用于实现端到端的通信。入侵检测:监测和分析,识别潜在的网络入侵和恶意活动。防火墙规则:防火墙根据IP地址过滤网络流量,控制数据包的进出。 阅读详情

相关推荐

全球IP地址查询与定位工具:IP2Location Lite DB3 CSV详解

随着信息技术的发展,互联网已成为人们日常生活和工作不可或缺的一部分。在这样的背景下,能够准确地识别和定位网络上的设备变得越来越重要。IP地址查询与定位工具应运而生,它们通过提供特定IP地址的信息,帮助网络管理员、开发者,甚至普通用户了解与某个IP地址相关的地理位置、网络服务商、甚至是组织机构等信息。这类工具通常依赖于庞大的IP地址数据库,这些数据库记录了IP地址范围以及与之相关的地理位置信息。

weixin_29859471的博客 1143

服务器的多网卡显示一个ip地址吗,服务器怎么配置多个ip地址吗

服务器怎么配置多个ip地址吗 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。服务器怎么配置多个ip地址吗 相关内容虚拟IP地址用于为网卡...

weixin_35483528的博客 948

TI MSPM0G3507 循迹小车强制寻黑线代码一

一个基于MSPM0微控制器的循迹小车控制系统。系统通过8路循迹传感器检测黑线位置偏差,使用PID算法计算电机控制量。主程序初始化中断、PWM等外设,在按键触发后进入循迹模式。传感器数据处理函数根据检测到的黑线位置返回偏差值(-7到7),PID控制器根据偏差调整左右电机速度。系统还包含限幅处理、中断服务等模块,实现稳定的自动循迹功能。代码结构清晰,展示了嵌入式系统中传感器数据处理、电机控制和PID算法的典型实现方式。

雾削木的优快云博客 1854

重新认识 IP地址

了解网段划分、IP地址的分类、私有IP和公网IP的概念

challenglistic的博客 2万+

PCB设计之ODB++文件格式详解

ODB++(Open Database++)是一种广泛应用于PCB(印制电路板)设计和制造领域的开放数据交换格式。它由Valor Computerized Systems(现为Siemens EDA的一部分)开发,旨在替代传统的Gerber文件格式,提供更完整、结构化的制造数据,从而优化PCB设计到生产的流程。ODB++通过结构化数据整合了PCB设计到制造的全流程信息,显著提高了生产效率和准确性。尽管存在一定的兼容性挑战,但其在复杂项目和高可靠性场景中的价值不可替代。

ZZcppc的博客 1万+

京东风控算法工程师带你解读Action Model-精细化运营(上篇)

电影《蝴蝶效应》中,男主拥有回到童年改变过去的能力,虽然在剧中男主一次次穿越时空拯救世界,但由于他无法预见自己做出的抉择对未来产生的其他影响,最终还是没能阻止悲剧的发生。可见,一个好的决策需要衡量其对未来产生的影响。JDD风控算法团队本期为大家解惑最优决策难题的解决方法-Action Model。

JDD风控算法的博客 1916

IP地址分类和特殊IP地址

文章目录1.IP地址分类(A类 B类 C类 D类 E类)2.特殊IP地址2.1 直接广播地址2.2 受限广播地址2.3 本网络地址 1.IP地址分类(A类 B类 C类 D类 E类) IP地址由四段组成,每个字段是一个字节,8位,最大值是255,, IP地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是主从关系。 IP地址的四...

959 7113

PADS导出PCB正反面丝印为CAD文件的方法

本文介绍如何将PADS绘制的pcb格式的PCB文件顶底层丝印及板框导出为CAD的dxf文件格式,并且将底层丝印进行镜像为正常视角

luguodeyo的博客 3291

深入解析IP地址分类与私有IP地址范围

在互联网和计算机网络中,IP地址(Internet Protocol Address)是设备通信的基础。无论是浏览网页、发送电子邮件,还是进行视频通话,数据包的传输都依赖于IP地址。IP地址不仅用于标识网络中的设备,还决定了数据如何路由到目标主机。

vvilkin的学习备忘 3722

Verilog除法器(32位无符号+带符号)

32位无符号除法器设计 恢复余数法: 恢复余数除法的基本思路是从“部分余数”中减去除数,如果结果为负(不够减),则恢复原来的部分余数,商0. 寄存器使用: reg_r 存放被除数a reg_b 存放除数b reg_r 存放余数(初始清零) 具体做法: 做减法时,减数是reg_b中的除数,被减数是reg_r中的余数左移一位,最低位由reg_q(被除数)的最高位补充。为了能够判断相减结果的正...

qq_38600065的博客 1万+

【RTD】AD7793驱动程序

AD7793完整驱动程序,支持两线、三线、四线RTD。

只要思想不滑坡,想法总比问题多。 6172

IP地址和MAC地址介绍及区别

1、IP地址 IP地址,IP协议提供的统一的地址格式,它为互联网上的每一个主机(路由器)的每一个接口分配一个逻辑地址。 目前IP地址使用32位二进制的地址格式(分类的IP地址编码方式),由两部分组成:一部分是标识该地址所从属的网络号;另一部分是标明该网络号的某一个特定主机的主机号,网络号由因特网权利机构进行分配,一个网络号在整个因特网范围内必须是唯一的,主机地址则是由各个网络的管理员进行分配,一个...

qq_44723296的博客 3876

ORB-SLAM2算法4之KITTI开源数据集运行ORB-SLAM2生成轨迹并用evo工具评估轨迹

ORB-SLAM2算法1 已成功编译安装ORB-SLAM2到本地,本篇目的是用KITTI开源数据来运行ORB-SLAM2,并生成轨迹,最后用evo评估工具来评估ORB-SLAM2生成的轨迹和真值轨迹。

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 2325

浅析IP地址划分场景应用

浅析IP地址划分场景应用

cctimingroad的博客 1066

【表面缺陷检测】基于yolov5的钢轨表面缺陷检测(附代码和数据集,Windows系统)

【表面缺陷检测】基于yolov5的钢轨表面缺陷检测(附代码和数据集,Windows系统)

学无止境、积少成多、厚积薄发 3981

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

——IP地址类型及应用场景

在局域网(LAN)内分配,不具有全局唯一性,通常用于家庭或企业网络中。它用于局域网内部设备之间的通信,不直接暴露在互联网中,常见的内网IP地址范围有192.168.x.x、10.x.x.x等。由互联网服务提供商(ISP)分配,是全球唯一的地址,用于设备在互联网中的唯一标识,使设备能够直接与其他外部设备通信。它常用于远程访问、网站托管、在线游戏与VoIP等场景。

zj654695的博客 940

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IP地址基本介绍

1.IP地址(IPv4)采用32位表示。2.32位的IP地址,8位一组,分成4组,用"."分隔开,这种方法叫做(注:1字节=8位)由地址类别,网络号,主机号组成。3.IP地址是用于,其4.前缀标记法在IP地址最后加上“/”,“/”后面的数字表示例:192.168.7.31/16 表示网络号占16位5.......

PICACHU+++的博客 6629

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

关于IP地址能否重复的问题

IP地址(Internet Protocol Address)是用于在计算机网络中唯一标识设备的一个数字标签。在正常情况下,一个网络中的每个设备都应该有一个唯一的IP地址,以确保数据能够正确地发送到目标设备。

qq_62339123的博客 3098

IP 别名和辅助 IP 地址

概述IP 别名(IP Alias),辅助ip地址(Secondary IP Address)

xiewen99的专栏 1万+

Linux如何通过命令修改开发板ip地址

在 Linux 上,可以通过以下几种方式修改开发板的 IP 地址,具体取决于你使用的网络配置工具。

woaizhuliya的博客 2163

【IP地址】

首先:必须要找到首段地址,之后递增网段,递增的数值就是借位的最低位(最右边那位)的代表数字(也就是掩码:例:/27 就是第27位的代表数字)主机位全1 的地址代表本网段内的广播地址,只能作为目标地址使用;写出172.16.3.0/16 的可用地址范围、可用主机数量、以及广播地址和网络地址。在一个网段内,除了主机位全0和主机位全1 的地址外,剩下的地址均可给主机使用。192.168.1.255/24 主机位全 1 的地址-广播地址。0.0.0.0/0 无效地址/默认地址/缺省地址。

xiaotangtongzhi的博客 2216

深入解析IP地址和MAC地址的关系及其应用场景

深入解析IP地址和MAC地址的关系及其应用场景

qq_46017342的博客 3015

IP地址库完整版资源介绍:全方位IP地址数据支持,助力高效开发

IP地址库完整版资源介绍:全方位IP地址数据支持,助力高效开发 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当今互联网时代,IP地址作为网络通信的基础,其重要性不言而喻。IP地址库完整版资源,是一个全面涵盖各类IP地址数据的开源项目。项目旨在为开发者和网络管理员提供一套包含多种格式的IP地址数据库,以满足各种不同的应用需求。 项目技术分析 本项目采用多种数据格式存...

gitblog_06735的博客 991

NAT 技术如何解决 IP 地址短缺问题?

是一种网络地址转换技术,它允许私有网络中的多个设备共享一个公有 IP 地址与外部网络进行通信。NAT 会将私有 IP 地址(内网地址)转换为公有 IP 地址,并在返回数据包时进行反向转换,从而实现内外网的通信。这一技术是在IPv4路由器中实现。

智的博客 1667

linux开发板设置静态ip,重启开发板IP地址不丢失

①修改网络配置文件,在串口中端输入: vi /etc/network/interfaces。这里通过设置开发板上电网卡eth0默认为静态IP,重启后IP不丢失。复位开发板,再输入ifconfig发现ip地址已经被设置好了。⑤重启网络服务,并输入ifconfig查看IP地址。②修改默认网卡设置,并设置为静态IP。④在 exit0 之前添加这条命令。③修改开机自启动文件。

u014627020的博客 3038

IP地址

分类1)、IP地址分为固定IP地址和动态IP地址。 固定IP地址,也可称为静态IP地址,是长期固定分配给一台计算机使用的IP地址,一般是特殊的服务器才拥有固定IP地址。 动态IP地址是因为IP地址资源非常短缺,通过电话拨号上网或普通宽带上网用户一般不具备固定IP地址,而是由ISP动态分配给暂时的一个IP地址。普通人一般不需要去了解动态IP地址,这些都是计算机系统自动分配完成的。 2)、IP

1426
上一篇: jdk8中的Arrays.sort
下一篇: 纸上得来终觉浅->代码详解锁升级
happystudy_neu
博客等级 码龄4年 1140粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值