前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python通过代码获取本机局域网ip和公网ip

Python通过代码获取本机局域网ip和公网ip

作者头像
小蓝枣
发布2024-05-26 09:26:54
1620
发布2024-05-26 09:26:54
举报

Python 获取本机局域网 IP

通过创建一个 UDP 套接字,并连接到公共的 DNS 服务器(此处是 Google8.8.8.8 ),然后通过套接字的 getsockname ()方法获取本地 IP 地址。最后关闭套接字连接并返回本地 IP 地址。最终输出将打印本机的 IP 地址。

代码语言:javascript
复制
import socket

def get_local_ip():
    try:
        # 创建一个UDP套接字
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        # 连接到公共的DNS服务器(8.8.8.8)
        sock.connect(("8.8.8.8", 80))
        # 获取本地IP地址
        local_ip = sock.getsockname()[0]
        return local_ip
    finally:
        # 关闭套接字连接
        sock.close()

# 调用函数获取本机IP地址
local_ip = get_local_ip()
print("本机局域网IP地址是:", local_ip)

效果图:

Python 获取本机公网 IP

使用 requests 库发送一个 GET 请求到 https://api.ipify.org ? format = jsonAPI 端点,这个 API 会返回包含公网 IP 地址的 JSON 响应。我们从响应数据中提取出 IP 地址并将其返回。这样你就可以获取到你的公网 IP 地址。

代码语言:javascript
复制
import requests

# 定义一个函数,用于获取公网IP地址
def get_public_ip():
    # IP地址查询API
    url = 'https://api.ipify.org?format=json'
    # 发起GET请求
    response = requests.get(url)
    # 解析JSON格式的响应数据
    data = response.json()
    # 提取公网IP地址
    public_ip = data['ip']
    return public_ip

# 调用函数获取公网IP地址
public_ip = get_public_ip()
print("本机公网IP地址是:", public_ip)

效果图:

😃😄 ❤️ ❤️ ❤️

知识拓展:局域网和公网的差异

局域网( LAN )和公共互联网( Internet )是两个不同的网络概念,它们具有许多差异和特点:

1. 范围

- 局域网是在较小范围内的私有网络,通常在家庭、学校、办公室或建筑物内部使用,最大范围通常在几百米到几千米之间。 - 公共互联网是一个全球性的网络,连接了世界各地的计算机和网络设备,允许用户在全球范围内进行通信和访问互联网资源。

2. 拓扑结构

- 局域网通常采用星型或总线型拓扑结构,设备直接相连或通过交换机或路由器连接。 - 公共互联网采用分布式结构,由许多相互连接的网络设备组成,通过大量的路由器、交换机和服务器实现互联网通信。

3. 安全性

- 局域网通常受到较好的安全保护,网络管理员可以设置访问控制和安全策略,保护局域网内部数据和设备安全。 - 公共互联网存在安全风险和威胁,需要用户自行采取安全措施如使用防火墙、加密通信等防范网络攻击和数据泄露。

4. IP 地址

- 局域网内的设备通常使用本地 IP 地址(如 192.168.x.x10.x.x.x )来互相通信,通过网络地址转换( NAT )可以共享一个公共 IP 地址访问互联网。 - 公共互联网设备需要全球唯一的公共 IP 地址才能在互联网上进行通信。

5. 速度和带宽

- 局域网具有高速连接和较大带宽,通常可以提供低延迟的高速通信,适合用于共享资源和局域网内部应用。 - 公共互联网的速度和带宽受限于网络拓扑、传输距离和网络拥塞,速度和延迟会受到影响。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python 获取本机局域网 IP
  • Python 获取本机公网 IP
  • 知识拓展:局域网和公网的差异
  • 1. 范围
  • 2. 拓扑结构
  • 3. 安全性
  • 4. IP 地址
  • 5. 速度和带宽
相关产品与服务
弹性公网 IP
弹性公网 IP(Elastic IP,EIP)是可以独立购买和持有,且在某个地域下固定不变的公网 IP 地址,可以与 CVM、NAT 网关、弹性网卡和高可用虚拟 IP 等云资源绑定,提供访问公网和被公网访问能力;还可与云资源的生命周期解耦合,单独进行操作;同时提供多种计费模式,您可以根据业务特点灵活选择,以降低公网成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档