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

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

大家好,欢迎来到IT知识分享网。

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也可以直接通过命令行获取,具体如下所示:

curl ifconfig.io curl ifconfig.me curl ipinfo.io/ip/ 

我编写了一个程序,用户可以输入对应的公网 IP,程序将访问该公网 IP 并返回其对应的国家、省份、城市,以及经度和纬度。具体代码如下所示:

import requests headers = { 
    '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': '', '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的信息。') 

3.定位位置

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124542.html

(0)
上一篇 2025-10-06 16:15
下一篇 2025-10-06 16:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信