A Learning-Based Approach for IP Geolocation(2010年)
下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement
被引次数:185
Eriksson B, Barford P, Sommers J, et al. A learning-based approach for IP geolocation[C]//Passive and Active Measurement: 11th International Conference, PAM 2010, Zurich, Switzerland, April 7-9, 2010. Proceedings 11. Springer Berlin Heidelberg, 2010: 171-180.
Abstract
定位IP主机地理位置的能力对于在线广告和网络攻击诊断等应用程序是非常吸引力的。虽然先前的方法可以准确地识别主机在互联网的某些区域的位置,但当它们所基于的延迟或拓扑测量有限时,它们会产生错误的结果。我们工作的假设是,可以通过创建一个能够适应不同类型的地理位置信息的灵活的分析框架来提高IP地理位置的准确性。
在本文中,我们描述了一个新的IP地理定位框架,它简化为一个机器学习分类问题。我们的方法考虑了从一组已知监视器到目标的轻量级测量,然后根据从训练集中学习到的概率密度的最可能的地理区域对目标的位置进行分类。在本研究中,我们采用了一个朴素贝叶斯框架,该框架的计算复杂度较低,并且易于添加额外的环境信息,以增强分类过程。
为了证明我们的方法的可行性和准确性,我们在超过16,000个路由器上测试了IP地理定位,并给出了来自78个已知地理位置的监视器的ping测量值。
我们的结果表明,我们的方法的简单应用提高了我们数据集中识别的对96%以上的节点的地理定位精度,与之前基于约束的地理位置相比,平均精度接近真实地理位置70英里。这些结果突出了我们的方法的前景,并表明了未来分类器的扩展如何导致地理定位精度的进一步提高。
1 Introduction
有很多方法可以考虑互联网的结构和拓扑特征。对广告商、应用程序开发人员、网络运营商和网络安全分析师有重大影响的一种方法是识别互联网设备的地理位置(如路由器或结束的主机)。地理位置可以指一个设备的精确的纬度/经度坐标,或一个更粗粒度的位置,如在一个邮政编码、城市、县或国家内。
在找到一个给定的互联网设备的地理位置方面有许多挑战。最明显的是,没有一个标准的协议可以提供全球范围内任何设备的位置(尽管DNS条目可以包含一个位置记录)。此外,互联网设备通常不具备位置识别能力(例如,GPS,尽管这种情况将来可能会改变),即使有,一些人也会认为这些信息是私人的。先前的方法集中于根据互联网设备的地理位置来识别其相对于已知位置的地标的主动测量的位置。虽然这些方法已被证明能够在某些地区产生相对准确的地理估计,但由于各种原因,仍然不准确。其中最主要的事实是,全球各地的特定测量数据的密度不一致。
我们工作的目标是广泛地提高IP地理定位的准确性。我们的假设是,由不完善的测量、稀疏的测量可用性和不规则的互联网路径引起的大估计误差可以通过扩展IP地理位置中考虑的信息范围来解决。我们开发来测试这一假设的估计框架是将IP地理定位转换为一个基于机器学习的分类问题。这种可扩展的方法可以将来自多个数据集的信息融合起来,这样,从一个测量中信息内容较低的区域就可以用来自其他测量的更好的信息内容进行补偿。
为了充实这个框架,为了检验我们的假设,我们必须同时选择一种分类方法和一组可以用来估计IP地理位置的测量值。我们开发了一种朴素贝叶斯估计方法,该方法基于与该IP目标相关联的一组测量值,将一个给定的IP目标分配给一个地理分区。考虑到对IP目标的大量测量,概率似然估计简化为朴素贝叶斯方法。该框架中考虑的网络测量数据包括从一组地标到IP目标的延迟和跳数计数。我们还在框架中包括了人口密度,作为一个非网络测量的演示,可以帮助改进估计。选择这种分类器/测量组合是为了证明这种新方法的潜力,但并不意味着是明确的或全面的。
为了测试和评估我们基于学习的方法的这个初始实例的能力,我们考虑了在美国大陆的县级别上的地理划分。(在我们的框架中,根据邮政编码或城市街区的顺序进行更细粒度的划分当然是可行的,但由于测试和评估数据的可用性,我们选择了县级划分。)
虽然相当多的互联网拓扑结构位于美国大陆以外,但对该数据集的初步验证将激发未来对位于美国以外的终端主机的工作。我们在互联网上确定了114,815个空间不同节点从行星实验室节点的网格跟踪探测的目标集,来自iPlane [1]项目的补充数据,以及仔细的别名解析。对于这些目标节点的地理位置的基本真相,我们使用Maxmind数据库[2]作为我们的方法的验证集。在我们的测量中确定的114,815个IP目标节点中,有16,874个在Maxmind数据库中被确定为在美国境内,具有已知的城市位置。由于它作为一种商业产品的使用,Maxmind数据库的确切基础方法是不可用的,尽管已知已经广泛使用了用户调查地理位置信息。(由于它依赖于用户生成的数据,更新Maxmind数据库需要大量的用户调查,而这是我们基于学习的方法所不需要的。)
1. Madhyastha, H., Isdal, T., Piatek, M., Dixon, C., Anderson, T., Krishnamurthy, A., Venkataramani, A.: iPlane: An Information Plane for Distributed Services. In: USENIX OSDI 2006 (November 2006)
2. Maxmind geolocation database, http://www.maxmind.com
对于这组16K个目标节点,我们从位于美国的78个PlanetLab节点中收集了跳数计数和延迟测量值,这是我们评估的起点。
我们选择了目标节点的一个子集来训练我们的分类器,训练集节点具有对监视器的已知测量值和已知的地理位置。(在本文中,我们认为IP地址和节点是等价的,因为即使路由器上的别名解析不完善,也不应该影响我们的经验结果。)
对于其余的节点,我们将基于学习的方法和基于约束的地理位置(CBG)[3](使用ping度量的当前最先进的地理位置算法)的地理位置估计与使用Maxmind数据库发现的位置进行比较。我们发现,对于96%的节点,我们的估计器能够提供比CBG更好的位置估计值,并且平均提供的估计值距离真实位置更近70英里。我们相信,这些结果为未来发展基于学习的IP地理定位方法提供了一个令人信服的理由。
3. Gueye, B., Ziviani, A., Crovella, M., Fdida, S.: Constraint-based geolocation of internet hosts. IEEE/ACM Transactions on Networking (December 2006)
2 Learning-Based IP Geolocation
给定一个目标IP地址,我们能确定目标IP的地理位置吗?考虑一个目标IP地址,从一组已知地理位置的监视器到这个目标IP地址。为了本工作,测量集M(= {,
,...,
})是来自监视器集的延迟和跳计数值的集合。没有一般性,现在考虑一组可能的县在美国大陆(
),这样的目标位于某个县
,这将使根本的问题更改为,给定测量集M,我们能估计出目标IP位于哪个县
吗?最好的分类器将选择目标最可能位于的县(
),即
。利用贝叶斯定理[4](
),因此我们可以将分类器重申为
相关文章:
A Learning-Based Approach for IP Geolocation(2010年)
下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:185 Eriksson B, Barford P, Sommers J, et al. A learning-based approach for IP geolocation[C]//Passive …...

高创新 | [24年新算法]NRBO-XGBoost回归+交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测
高创新 | [24年新算法]NRBO-XGBoost回归交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测 目录 高创新 | [24年新算法]NRBO-XGBoost回归交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现 [24年新算…...

Web APP设计:将多个相近的机器学习模型融合到一个Web APP中
将多个相近的机器学习模型融合到一个Web APP中 FUSE-ML是一个用于预测腰椎融合术后效果的APP,它可以做出三个不同的结论,分别评价术后的腰痛、腿痛和日常功能是否提高。 这估计是部署了三个机器学习模型在这个APP中,因为一个机器学习模型仅…...

网络爬虫:定义、应用及法律道德考量
网络爬虫技术在当今数据驱动的世界中发挥着重要作用。本文将从网络爬虫的定义和主要功能,其在业界的应用实例,以及涉及的法律和道德问题三个方面进行深入探讨。 1. 爬虫的定义和主要功能 网络爬虫,也称为网页爬虫或蜘蛛,是一种…...

(三)ffmpeg 解码流程以及函数介绍
一、视频解码流程 二、函数介绍 1.avformat_network_init 函数作用: 执行网络库的全局初始化。这是可选的,不再推荐。 此函数仅用于解决旧GnuTLS或OpenSSL库的线程安全问题。如果libavformat链接到这些库的较新版本,或者不使用它们&#…...

go work模块与go mod包管理是的注意事项
如下图所示目录结构 cmd中是服务的包,显然auth,dbtables,pkg都是为cmd服务的。 首先需要需要将auth,dbtables,pkg定义到go.work中,如下: 在这样在各个单独的go mod管理的模块就可以互相调用了。一般情况下这些都是IDE自动进行的,…...
华为OD-C卷-最长子字符串的长度(一)[100分]
题目描述 给你一个字符串 s,首尾相连成一个环形,请你在环中找出 o 字符出现了偶数次最长子字符串的长度。 输入描述 输入是一个小写字母组成的字符串 输出描述 输出是一个整数 备注 1 ≤ s.length ≤ 500000s 只包含小写英文字母用例1 输入 alolobo输出 6说明 最长子字…...

实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例
传统Wi-Fi网络所有终端设备都需要直接与路由器相连,这使得Wi-Fi的覆盖区域受到路由器位置的限制,可接入终端设备的数量也受到路由器容量的限制。而乐鑫ESP-Mesh-Lite Wi-Fi组网方案,所有终端设备都可以与相邻设备连接,摆脱了对路由…...

SiLM5350系列带米勒钳位的单通道隔离驱动器 助力汽车与工业应用实现稳定与高效的解决方案
带米勒钳位的隔离驱动SiLM5350系列 单通道 30V,10A 带米勒钳位的隔离驱动 具有驱动电流更大、传输延时更低、抗干扰能力更强、封装体积更小等优势, 为提高电源转换效率、安全性和可靠性提供理想之选。 SiLM5350系列产品描述: SiLM5350系列是单通道隔离驱…...
c#中怎么自动下载软件
以下是一个简单的 C# 示例,演示如何使用 WebClient 类下载软件: using System; using System.Net; class Program { static void Main(string[] args) { // 要下载的文件 URL string fileUrl "https://example.com/path/to/file"; // 本地保…...

Unity笔记之下拉刷新列表
这样的效果; 代码: using System; using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class ScrollRectUpdateView : Mon…...

防火墙操作!
当小编在Linux服务器上部署好程序以后,但是输入URL出现下述情况,原来是防火墙的原因!! 下面是一些防火墙操作! 为保证系统安全,服务器的防火墙不建议关闭!! 但是,我们可…...
代码随想录算法训练营第四十一天| 343. 整数拆分,96.不同的二叉搜索树
题目与题解 343. 整数拆分 题目链接:343. 整数拆分 代码随想录题解:343. 整数拆分 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili 解题思路: 一眼懵…...
【MATLAB源码-第53期】m代码基于粒子群算法(PSO)的三维路径规划,显示最优路径和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 粒子群算法(Particle Swarm Optimization,简称PSO)是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述: 基本思想: 鸟群在寻找食物时,每只鸟都…...
el-table多行合并
背景 前端统计列表,数据乱序。按日期、产品、阶段、DD项(所有header名称乱写)排序,列表如下。 示例 日期产品阶段DDEEFFGG20240414产品1阶段1场景1A01场景2B01其他A0120240410产品1阶段1场景2B01其他A0120240402产品2阶段1场景3…...

Vue3 + Element-Plus 使用 Table 插槽时数据未及时更新
Vue3 Element-Plus 使用 Table 插槽时数据未及时更新 问题重现解决方法最终效果 问题重现 这里我已经通过二级分类 id 查询到一级分类和二级分类,但是使用插槽和 v-for 渲染出来还是之前的分类 id,但是一点击表格或者保存代码他又能正常刷新出来。 <…...
vue 2 怎么把2024-04-13T17:42:19转换成短日期格式
我们在日常开发过程中,通常会将日期格式在entity中设置成LocalDateTime。这样就有一个麻烦,我们在前端展示这个日期的时候就会变成2024-04-13T17:42:19。这显然不是我们所要的效果,所以我们今天来解决这个问题,让前端展示正确的日…...

网络IO模型以及实际应用
网络IO模型 本文主要介绍了几种不同的网络IO模型,以及实际应用中使用到的Reactor模型等。 我们常说的网络IO模型,主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。 根据第一个阶段:是否需要阻塞,分为阻塞和非阻塞IO。…...

一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系
经常遇到很多系统,比如:MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM,这些都是什么系统?有什么功能和作用?它们之间的关系是怎样的? 今天就一文详细分享给大家。 10大系统之间的关系 ERP 和其他…...

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU使用containerd部署K8S 1.26.15集群(一主多从)》
总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本,出现了一个问题,就是在pod中访问百度网站,大概时间有10s多,这个时间太长了,尝试了各种办法,都解决不了,后面尝试安装了了1.26.…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...