揭秘IP:从虚拟地址到现实世界的精准定位

1.IP地址介绍

1.内网 IP 地址(私有 IP 地址)

内网 IP 地址,即私有 IP 地址,是在局域网(LAN)内部使用的 IP 地址。这些地址不会在公共互联网中路由,因此可以在多个局域网中重复使用。私有 IP 地址通常由路由器或其他网络设备通过 DHCP(动态主机配置协议)分配给局域网内的设备。

1.私有 IP 地址范围

根据 RFC 1918,私有 IP 地址有以下范围:

  • 10.0.0.0 到 10.255.255.255(10.0.0.0/8)
  • 172.16.0.0 到 172.31.255.255(172.16.0.0/12)
  • 192.168.0.0 到 192.168.255.255(192.168.0.0/16)

这些地址仅在局域网内有效,不会在公共互联网中出现。

2.使用场景
  • 家庭网络:路由器为家庭中的设备(如电脑、手机、智能电视等)分配私有 IP 地址。
  • 公司或学校网络:内部网络内的所有设备使用私有 IP 地址进行互连。

2.公网 IP 地址(公共 IP 地址)

公网 IP 地址,即公共 IP 地址,是在公共互联网上使用的 IP 地址。每个公网 IP 地址都是唯一的,由互联网服务提供商(ISP)分配,确保全球范围内的唯一性。

1.公共 IP 地址管理

公共 IP 地址由全球组织(如 IANA 和各地区的 RIRs)管理并分配给 ISP 和最终用户。

2.使用场景
  • 访问互联网:当设备需要访问互联网时,它们使用公网 IP 地址进行通信。
  • 托管服务:如网站、邮件服务器和其他在线服务,必须有一个公网 IP 地址才能在互联网上访问。

3.内网 IP 与公网 IP 的关系

1.网络地址转换(NAT)

NAT(网络地址转换)是一种技术,使多个设备可以通过一个或多个公共 IP 地址访问互联网。NAT 通常由路由器或防火墙实现。

2.NAT 的工作原理
  1. 请求阶段

    • 内网设备(如你的电脑)使用私有 IP 地址发送请求到互联网。
    • 路由器使用 NAT,将私有 IP 地址转换为公共 IP 地址,并记录转换表(包括原始私有 IP 和端口号)。
  2. 响应阶段

    • 互联网服务器将响应发送到路由器的公共 IP 地址。
    • 路由器根据转换表,将响应转发到对应的内网设备。
3.举例说明
  1. 内网 IP 地址

    • 你的电脑在学校局域网内的 IP 地址是 10.195.1.65
    • 这个 IP 地址仅在学校局域网内部有效。
  2. 公网 IP 地址

    • 当你访问 https://ip.3322.net/ 时,你的请求会通过学校的路由器发送到互联网。
    • 路由器将你的私有 IP 地址 10.195.1.65 转换为公共 IP 地址 183.157.163.123
    • 网站 ip.3322.net 看到的就是 183.157.163.123,这是你的学校网络对外展示的 IP 地址。

4.总结

  • 内网 IP 地址(私有 IP 地址)

    • 仅在局域网内部使用。
    • 不在公共互联网中路由。
  • 公网 IP 地址(公共 IP 地址)

    • 在公共互联网上使用。
    • 由 ISP 分配,全球唯一。
  • NAT 技术

    • 使局域网内的多个设备通过一个公共 IP 地址访问互联网。
    • 路由器记录并管理私有 IP 和公共 IP 的转换关系。

2.IP查询

前面已经介绍了内网 IP 和公网 IP 的区别。如果你想查询某个 IP 在现实世界中的位置,通过内网 IP 是无法实现的。因此,需要先通过访问 https://ip.3322.net/ 获取你的设备的公网 IP,然后才能进行后续的地理位置查询操作。
我编写了一个程序,用户可以输入对应的公网 IP,程序将访问该公网 IP 并返回其对应的国家、省份、城市,以及经度和纬度。具体代码如下所示:

import requestsheaders = {'Accept': '*/*','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive','Origin': 'https://ip-api.com','Pragma': 'no-cache','Referer': 'https://ip-api.com/','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-site','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36','sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}params = {'fields': '66842623','lang': 'en',
}input_ip = input('请输入你需要查询的IP: ')response = requests.get(f'https://demo.ip-api.com/json/{input_ip}', params=params, headers=headers)
info_json = response.json()if info_json['status'] == 'success':ip = info_json.get('query', 'N/A')country = info_json.get('country', 'N/A')region = info_json.get('regionName', 'N/A')city = info_json.get('city', 'N/A')lat = info_json.get('lat', 'N/A')lon = info_json.get('lon', 'N/A')print(f'IP: {ip}')print(f'Country: {country}')print(f'Region: {region}')print(f'City: {city}')print(f'Latitude: {lat}')print(f'Longitude: {lon}')
else:print('无法获取该IP的信息。')

当前,如果你不想执行程序,你也可以访问ip-api,在里面输入对应的公网IP,也一样可以得到对应的位置信息。
在这里插入图片描述

3.定位位置

前面提到的程序或网站查询通常只能定位到具体的城市。如果你还想进一步精确到具体的街道等详细信息,则需要使用经度和纬度进行查询。你可以打开百度地图,并在其中输入前面通过 IP 地址获取的经度和纬度,即可定位到对应 IP 的具体位置信息。通过这种方式,你可以获得更详细的地理位置数据,从而实现更精确的定位。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1474516.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

fasttext工具介绍

fastText是由Facebook Research团队于2016年开源的一个词向量计算和文本分类工具。尽管在学术上并未带来巨大创新,但其在实际应用中的表现却非常出色,特别是在文本分类任务中,fastText往往能以浅层网络结构取得与深度网络相媲美的精度&#x…

时间处理的未来:Java 8全新日期与时间API完全解析

文章目录 一、改进背景二、本地日期时间三、时区日期时间四、格式化 一、改进背景 Java 8针对时间处理进行了全面的改进,重新设计了所有日期时间、日历及时区相关的 API。并把它们都统一放置在 java.time 包和子包下。 Java5的不足之处: 非线程安全&…

全面解析 TypeScript 泛型的二三事

2024年了相信大家都已经在日常开发的过程中使用上了 TypeScript 了。TypeScript 增强了代码可靠性和可维护性,确保减少运行时错误并提高开发人员的工作效率。 TypeScript 通过类型声明 使得 javascript 拥有了强类型校验。而泛型的是类型声明中最重要的一环&#x…

vue单独部署到宝塔教程

配置反向代理 注意:如果目标网站是https则写https否则写http 2.关于解决部署后无法刷新,直接报错404 location / { try_files $uri $uri/ /index.html; }

【WebRTC实现点对点视频通话】

介绍 WebRTC (Web Real-Time Communications) 是一个实时通讯技术,也是实时音视频技术的标准和框架。简单来说WebRTC是一个集大成的实时音视频技术集,包含了各种客户端api、音视频编/解码lib、流媒体传输协议、回声消除、安全传输等。对于开发者来说可以…

建投数据入选“2024年中国最佳信创企业管理软件厂商”

近日,建投数据凭借国产化自主知识产权、完备的信创资质及信创软硬件环境全栈适配能力,入选第一新声联合天眼查发布的“2024年中国最佳信创厂商系列榜单”细分行业榜之“最佳信创企业管理软件厂商”。 本次最佳信创厂商系列榜单评选,包括综合榜…

ffmpeg图片视频编辑器工具的安装与使用

title: ffmpeg图片视频编辑器工具的安装与使用 tags: [ffmpeg, 图片, 音频, 视频, 工具, 流媒体] categories: [工具, ffmpeg] FFmpeg是一个开源的命令行工具,广泛用于处理视频和音频文件,包括转换格式、剪辑、混流、解码、编码等。以下是一些基本的FFmp…

智能充电(新能源电动车,电单车)云管理系统的定制解决方案

一 系统简介 智能充电(新能源电动车,电单车)云管理系统 是一套能够实现对充电站/桩的实时通讯、状态监控、故障检测、运营分析、数据统计、策略设置的智能化多任务管理系统。 二 平台概览 智能充电云管理系统 https://chongdianzhuang.itg…

C# 如何获取属性的displayName的3种方式

文章目录 1. 使用特性直接访问2. 使用GetCustomAttribute()方法通过反射获取3. 使用LINQ查询总结和比较 在C#中,获取属性的displayName可以通过多种方式实现,包括使用特性、反射和LINQ。下面我将分别展示每种方法,并提供具体的示例代码。 1.…

如何让代码兼容 Python 2 和 Python 3?Future 库助你一臂之力

目录 01Future 是什么? 为什么选择 Future? 安装与配置 02Future 的基本用法 1、兼容 print 函数 2、兼容整数除法 3、兼容 Unicode 字符串 03Future 的高级功能 1. 处理字符串与字节 2. 统一异常处理…

Facebook数据仓库的变迁与启示

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; <搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到…

IntelliJ IDEA教育版在Windows电脑中的下载、安装方法

本文介绍IntelliJ IDEA软件Community&#xff08;社区版&#xff09;在Windows操作系统中的下载、安装、运行与使用方法。 IntelliJ IDEA软件是一款由JetBrains公司开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于Java语言的开发&#xff0c;但同时也支持其…

昇思25天学习打卡营第12天|简单的深度学习ResNet50图像分类 - 构建ResNet50网络

ResNet主要解决深度卷积网络在深度加深时候的“退化”问题。在一般的卷积神经网络中&#xff0c;增大网络深度后带来的第一个问题就是梯度消失、爆炸&#xff0c;这个问题Szegedy提出BN层后被顺利解决。BN层能对各层的输出做归一化&#xff0c;这样梯度在反向层层传递后仍能保持…

使用ElementUI组件库

引入ElementUI组件库 1.安装插件 npm i element-ui -S 2.引入组件库 import ElementUI from element-ui; 3.引入全部样式 import element-ui/lib/theme-chalk/index.css; 4.使用 Vue.use(ElementUI); 5.在官网寻找所需样式 饿了么组件官网 我这里以button为例 6.在组件中使用…

STM32-I2C

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. I2C通信1.1 I2C通信简介1.2 硬件电路1.3 I2C时序基本单元1.3.1 起始条件和终止条件1.3.2 发送一个字节1.3.3 接收一个字节1.3.4 发送应答和接收应答 1.4 I2C时序1.4.1 指定地址写1.4.2 当前地址读1.4.3 指定地址读…

Postman使用指南①网页版使用

postman官网地址&#xff1a;Postman API Platform 进入后点击右上角免费注册&#xff0c;注册后登录 登录之后即可在网页使用&#xff0c;无需下载

【网络安全】实验七(ISA防火墙的规则设置)

一、实验目的 二、配置环境 打开两台虚拟机&#xff0c;并参照下图&#xff0c;搭建网络拓扑环境&#xff0c;要求两台虚拟机的IP地址要按照图中的标识进行设置&#xff0c;并根据搭建完成情况&#xff0c;勾选对应选项。注&#xff1a;此处的学号本人学号的最后两位数字&…

C++ STL 多线程库用法介绍

目录 一&#xff1a;Atomic&#xff1a; 二&#xff1a;Thread 1. 创建线程 2. 小心移动(std::move)线程 3. 如何创建带参数的线程 4. 线程参数是引用类型时&#xff0c;要小心谨慎。 5. 获取线程ID 6. jthread 7. 如何在线程中使用中断 stop_token 三&#xff1a;如何…

leetcode每日一题-3033. 修改矩阵

题目描述&#xff1a; 解题思路&#xff1a;简单题目&#xff0c;思路非常直接。对列进行遍历&#xff0c;记录下最大值&#xff0c;然后再遍历一遍&#xff0c;把-1替换为最大值。需要注意的是进行列遍历和行遍历是不同的。 官方题解&#xff1a; class Solution { public:v…

图片管理新纪元:高效批量横向拼接图片,一键生成灰色艺术效果,打造专业视觉体验!

在数字时代&#xff0c;图片已成为我们生活和工作中不可或缺的一部分。但面对海量的图片&#xff0c;如何高效地进行批量管理、拼接和调色&#xff0c;成为许多人面临的难题。今天&#xff0c;我们为您带来了一款颠覆性的图片管理工具&#xff0c;让您轻松实现图片批量横向拼接…