首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >什么是ip地址

什么是ip地址

原创
作者头像
泽霖
发布2023-11-11 23:25:44
发布2023-11-11 23:25:44
1.6K00
代码可运行
举报
文章被收录于专栏:分享技术分享技术
运行总次数:0
代码可运行

ip地址

公有IP地址:

IP地址是一个32位(IPv4)或128位(IPv6)的数字,用于唯一标识计算机、服务器、路由器或其他网络设备。每台连接到互联网的设备都必须拥有一个IP地址,这个地址充当设备在网络中的位置坐标。

简单来说,公网IP地址是可以通过 Internet 直接访问的 IP 地址,所有公共 IP 地址对其主机或服务器都是唯一的,不能重复。

私有IP地址:

私有IP地址是在局域网(LAN)中使用的IP地址,用于内部通信,通常不直接从互联网上访问。许多个设备在一个局域网中共享一个公有IP地址。私网IP地址不在 Internet 上路由,也无法从 Internet 向它们发送流量

**概况**:每一台设备都需要一个IP地址来进行区分标识,而IP地址中又有分为公网ip和私网ip,公网IP地址用于在互联网上可访问的设备。私有IP地址主要用于内部网络。

对比

特征

公网IP地址

私网IP地址

范围

全球性

本地

是否免费

收费

免费

安全性

不安全,容易受到攻击

安全

是否需要NAT| 需要 NAT 才能与设备通信 | 不需要 NAT

IPv4 vs. IPv6

  • **IPv4**:IPv4使用32位地址,它由四个八位组成,通常以点分十进制(例如,192.168.0.1)的形式表示。由于互联网的快速增长,IPv4地址资源已经枯竭,因此逐渐被IPv6取代。
  • **IPv6**:IPv6采用128位地址,使用冒号分隔的八组十六进制数表示(例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IPv6大大扩展了可用的地址空间,以支持未来的互联网需求。

IP地址的分类

三大私网地址范围

  1. **10.0.0.0 到 10.255.255.255**:
代码语言:txt
复制
 -   这是一个较大的私有IP地址范围,可以支持约16,777,216个IP地址。
代码语言:txt
复制
 -   通常用于大型企业或组织的内部网络。
  1. **172.16.0.0 到** :
代码语言:txt
复制
 -   这个范围包括16个连续的私有IP地址块,每个块支持约65,536个IP地址。
代码语言:txt
复制
 -   通常用于中型企业或组织的内部网络。
  1. **192.168.0.0 到 192.168.255.255**:
代码语言:txt
复制
 -   这是最常见的私有IP地址范围,用于小型家庭网络和小型企业内部网络。
代码语言:txt
复制
-   通常用于家庭路由器和小型办公室网络设备。

区分私网地址范围的意义

  • 保证在不同规模和类型的网络中可以使用私有IP地址,而不会发生地址冲突。

私网ip的作用

这些私有IP地址范围允许内部网络中的设备进行本地通信,而不需要唯一的全球性标识。在连接到互联网时,路由器或防火墙会将内部私有IP地址转换为公有IP地址,以便与互联网通信。这有助于减少了IPv4地址枯竭问题,因为有限的公有IP地址可以用于多个内部设备。

那如果我们想要获取本地的IP地址,应该如何获取呢?

可以使用Python类获奖

使用Python获取本地IP地址

我们可以使用Python提供了socket库,来获取获取本地计算机的IP地址。

代码语言:txt
复制
import socket



# 获取本地主机名

hostname = socket.gethostname()



# 获取本地IP地址

ip\_address = socket.gethostbyname(hostname)



print(f"本地主机名:{hostname}")

print(f"本地IP地址:{ip\_address}")

那如果我们想要获取客户端的IP地址,又该怎么获取呢?

使用JavaScript获取客户端IP地址

在Web网站中,我们可以使用第三方API(ipify)来获取IP地址:

代码语言:javascript
代码运行次数:0
运行
复制
// 使用fetch函数发送GET请求到https://api.ipify.org?format=json

fetch('https://api.ipify.org?format=json')

  .then(response => response.json()) // 解析响应为JSON格式

  .then(data => {

    // 当JSON解析完成后,data对象包含了响应数据,其中的ip字段包含了客户端IP地址

    const clientIP = data.ip;

    console.log(`客户端IP地址:${clientIP}`);

  })

  .catch(error => {

    // 捕捉任何可能的错误,如网络连接问题或JSON解析错误

    console.error('获取IP地址时出错:', error);

  });

代码讲解

  1. 使用fetch函数向指定的URL发送GET请求。在这里,URL是https://api.ipify.org?format=json,这是一个提供IP地址信息的API。
  2. 一旦请求完成,fetch会返回一个Response对象,然后我们使用.json()方法将响应解析为JSON格式。
  3. 第二个.then块会在JSON解析完成后执行。此时,data对象包含了响应数据,其中的ip字段包含了客户端的IP地址。
  4. 最后,我们将客户端IP地址打印到控制台。如果在请求过程中出现错误,catch块会捕获并打印错误信息。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ip地址
    • 公有IP地址:
    • 私有IP地址:
  • 对比
    • IPv4 vs. IPv6
  • IP地址的分类
  • 三大私网地址范围
  • 区分私网地址范围的意义
  • 私网ip的作用
  • 那如果我们想要获取本地的IP地址,应该如何获取呢?
    • 使用Python获取本地IP地址
  • 那如果我们想要获取客户端的IP地址,又该怎么获取呢?
    • 使用JavaScript获取客户端IP地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档