通过创建一个 UDP 套接字,并连接到公共的 DNS 服务器(此处是 Google 的 8.8.8.8 ),然后通过套接字的 getsockname ()方法获取本地 IP 地址。最后关闭套接字连接并返回本地 IP 地址。最终输出将打印本机的 IP 地址。
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)
效果图:
使用 requests 库发送一个 GET 请求到 https://api.ipify.org ? format = json 的 API 端点,这个 API 会返回包含公网 IP 地址的 JSON 响应。我们从响应数据中提取出 IP 地址并将其返回。这样你就可以获取到你的公网 IP 地址。
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 )是两个不同的网络概念,它们具有许多差异和特点:
- 局域网是在较小范围内的私有网络,通常在家庭、学校、办公室或建筑物内部使用,最大范围通常在几百米到几千米之间。 - 公共互联网是一个全球性的网络,连接了世界各地的计算机和网络设备,允许用户在全球范围内进行通信和访问互联网资源。
- 局域网通常采用星型或总线型拓扑结构,设备直接相连或通过交换机或路由器连接。 - 公共互联网采用分布式结构,由许多相互连接的网络设备组成,通过大量的路由器、交换机和服务器实现互联网通信。
- 局域网通常受到较好的安全保护,网络管理员可以设置访问控制和安全策略,保护局域网内部数据和设备安全。 - 公共互联网存在安全风险和威胁,需要用户自行采取安全措施如使用防火墙、加密通信等防范网络攻击和数据泄露。
- 局域网内的设备通常使用本地 IP 地址(如 192.168.x.x 或 10.x.x.x )来互相通信,通过网络地址转换( NAT )可以共享一个公共 IP 地址访问互联网。 - 公共互联网设备需要全球唯一的公共 IP 地址才能在互联网上进行通信。
- 局域网具有高速连接和较大带宽,通常可以提供低延迟的高速通信,适合用于共享资源和局域网内部应用。 - 公共互联网的速度和带宽受限于网络拓扑、传输距离和网络拥塞,速度和延迟会受到影响。