揭秘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.mzph.cn/pingmian/42432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

股票Level-2行情是什么,应该怎么使用,从哪里获取数据

行情接入方法 level2行情websocket接入方法-CSDN博客 相比传统的股票行情,Level-2行情为投资者打开了更广阔的视野,不仅限于买一卖一的表面数据,而是深入到市场的核心,提供了十档乃至千档的行情信息(沪市十档&#…

STM32第十六课:WiFi模块的配置及应用

文章目录 需求一、WiFi模块概要二、配置流程1.配置通信串口,引脚和中断2.AT指令3.发送逻辑编写 三、需求实现代码总结 需求 完成WiFi模块的配置,使其最终能和服务器相互发送消息。 一、WiFi模块概要 本次使用的WiFi模块为ESP-12F模块(安信可&#xf…

【LLM第8篇】Delta Tuning

如何对large-scale PLM进行调整呢? 一个有效的方式是delta tuning;只更新PLM中的一小部分参数,其它参数不动。 把解决任务的能力具象化成delta object这样的参数,只需要几十兆参数存储。 过去模型参数是随机的,现在预…

【MySQL】逻辑架构与存储引擎

一、逻辑架构 1、MySQL逻辑架构 我们可以根据上图来对sql的执行过程进行分析 第一步:客户端与服务器建立一个连接,从连接池中分配一个线程处理SQL语句第二步:SQL接口接受SQL指令第三步:如果是5.7版本,就会先去缓存中…

Python字符串处理常用的30种操作

我们平时编写代码时,经常需要对字符串进行处理,本文详细介绍Python处理字符串常用的30种操作,并给出了对应的代码。 分割 使用split()方法将字符串按照指定的分隔符进行分割。 s "Hello,World" result s.split(","…

国产AI芯片被撕下遮羞布,宁买阉割八成性能的NVIDIA,也不买国产

曾经有传言指有国产AI芯片大受欢迎,还卖出了100万片,不过半年多时间过去,海外分析机构指出国内的互联网企业纷纷抢购NVIDIA阉割八成性能的H20,至于国产AI芯片则不获欢迎。 导致如此结果,在于NVIDIA拥有许多独特的优势&…

论文略读: LLaMA Pro: Progressive LLaMA with Block Expansion

ACL 2024 人类通常在不损害旧技能的情况下获得新技能 然而,对于大型语言模型(LLMs),例如从LLaMA到CodeLLaMA,情况正好相反。深度学习笔记:灾难性遗忘-CSDN博客——>论文提出了一种用于LLMs的新的预训练…

Nettyの源码分析

本篇为Netty系列的最后一篇,按照惯例会简单介绍一些Netty相关核心源码。 1、Netty启动源码分析 代码就使用最初的Netty服务器案例,在bind这一行打上断点,观察启动的全过程: 由于某些方法的调用链过深,节约篇幅&#xf…

昇思MindSpore学习笔记4-03生成式--Diffusion扩散模型

摘要: 记录昇思MindSpore AI框架使用DDPM模型给图像数据正向逐步添加噪声,反向逐步去除噪声的工作原理和实际使用方法、步骤。 一、概念 1. 扩散模型Diffusion Models DDPM(denoising diffusion probabilistic model) (无)条件…

【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示BMP280传感器数据

LCD ST7735显示BMP280传感器数据 文章目录 LCD ST7735显示BMP280传感器数据1、硬件准备与接线2、代码实现本文介绍如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 Bosch Sensortec 的 BMP280 气压和温度传感器连接。 NodeMCU 微控制器 (ESP8266EX) 从 BMP280 传感器读取温度和压力值,…

普通Java工程如何在代码中引用docker-compose.yml中的environment值

文章目录 一、概述二、常规做法1. 数据库配置分离2. 代码引用配置3. 编写启动类4. 支持打包成可执行包5. 支持可执行包打包成docker镜像6. docker运行 三、存在问题分析四、改进措施1. 包含environment 变量的编排文件2. 修改读取配置文件方式3. 为什么可以这样做 五、运行效果…

python库(6):Pygments库

1 Pygments介绍 在软件开发和文档编写中,代码的可读性是至关重要的一环。无论是在博客文章、技术文档还是教程中,通过代码高亮可以使程序代码更加清晰和易于理解。而在Python世界中,Pygments库就是这样一个强大的工具,它能够将各…

ValueError: Expected EmbeddingFunction.__call__ to have the following signature

题意: 使用 langchain 时,特别是在定义或调用嵌入函数(Embedding Function)时,签名(函数的参数列表和返回类型)不符合预期 问题背景: When I try to pass a Chroma Client to Lang…

搭建论坛和mysql数据库安装和php安装

目录 概念 步骤 安装mysql8.0.30 安装php 安装Discuz 概念 搭建论坛的架构: lnmpDISCUZ l 表示linux操作系统 n 表示nginx前端页面的web服务 m 表示 mysql 数据库 用来保存用户和密码以及论坛的相关内容 p 表示php 动态请求转发的中间件 步骤 &#xff…

【C++深度探索】:继承(定义赋值兼容转换作用域派生类的默认成员函数)

✨ 愿随夫子天坛上,闲与仙人扫落花 🌏 📃个人主页:island1314 🔥个人专栏:C学习 🚀 欢迎关注:👍点赞…

CVE-2024-0603 漏洞复现

CVE-2024-0603 源码:https://gitee.com/dazensun/zhicms 开题: CVE-2024-0603描述:ZhiCms up to 4.0版本的文件app/plug/controller/giftcontroller.php中存在一处未知漏洞。攻击者可以通过篡改参数mylike触发反序列化,从而远程…

python脚本“文档”撰写——“诱骗”ai撰写“火火的动态”python“自动”脚本文档

“火火的动态”python“自动”脚本文档,又从ai学习搭子那儿“套”来,可谓良心质量👍👍。 (笔记模板由python脚本于2024年07月07日 15:15:33创建,本篇笔记适合喜欢钻研python和页面源码的coder翻阅) 【学习的细节是欢悦…

【学习笔记】程序设计竞赛

程序设计竞赛 文章目录 程序设计竞赛0x00 基本操作指南0x01 算法分析0x02 STL和基本数据结构栈队列集合map 0x03 排序插入排序归并排序(Merge Sort)快速排序 0x04 搜索技术BFSDFS回溯与剪枝 深度迭代ID A*A star双向广搜 0x05 递推方程0x06 高级数据结构并查集二叉树…

Hi6602 恒压恒流SSR电源方案

Hi6602是一款针对离线式反激电源设计的高性能PWM控制器。Hi6602内集成有通用的原边恒流控制技术,可支持断续模式和连续模式工作,适用于恒流输出的隔离型电源应用中。Hi6602内部具有高精度65kHz开关频率振荡器,且带有抖频功能可优化EMI性能。H…

17.优化算法之解决拓扑排序4

0.基础 1.课程表1 207. 课程表 - 力扣&#xff08;LeetCode&#xff09; class Solution {public boolean canFinish(int n, int[][] p) {// 1. 准备⼯作int[] in new int[n]; // 统计每⼀个顶点的⼊度Map<Integer, List<Integer>> edges new HashMap<>…