Python getpeername怎么用?获取客户端IP和端口号

在 Python 中,getpeername() 是 socket 对象的一个方法,用于获取与当前 socket 连接的对端(远程)地址信息,它通常用于 TCP 或 Unix 域 socket 连接,返回的是一个包含 IP 地址和端口号(对于 TCP/IP)或路径(对于 Unix 域 socket)的元组。

基本用法

import socket
# 创建一个 TCP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到远程服务器
sock.connect(('example.com', 80))
# 获取对端地址
peer_address = sock.getpeername()
print(f"对端地址: {peer_address}")
# 关闭 socket
sock.close()

Python getpeername怎么用?获取客户端IP和端口号

每天学Python-通过Socket实现TCP客户端与服务器端的通讯
加载中
每天学Python-通过Socket实现TCP客户端与服务器端的通讯

输出示例

对端地址: ('93.184.216.34', 80)

注意事项

  1. 必须先建立连接:getpeername() 只能在 socket 已经成功建立连接后调用,socket 未连接,调用该方法会抛出 OSError 异常。

  2. 适用于已连接的 socket:该方法仅适用于已连接的 socket(如通过 connect() 或 accept() 建立的连接),对于监听中的 socket(如通过 bind() 和 listen() 创建的 socket),应使用 getsockname() 获取本地地址。

  3. Python getpeername怎么用?获取客户端IP和端口号

  4. Unix 域 socket:对于 Unix 域 socket(AF_UNIX),getpeername() 返回的是对端 socket 的路径,而不是 IP 和端口。

示例:Unix 域 socket

import socket
# 创建一个 Unix 域 socket
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
# 连接到 Unix 域 socket
sock.connect('/tmp/my_socket')
# 获取对端地址
peer_address = sock.getpeername()
print(f"对端地址: {peer_address}")
# 关闭 socket
sock.close()

异常处理

在实际使用中,建议对 getpeername() 进行异常处理,以应对可能的错误情况:

Python getpeername怎么用?获取客户端IP和端口号

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    sock.connect(('example.com', 80))
    peer_address = sock.getpeername()
    print(f"对端地址: {peer_address}")
except OSError as e:
    print(f"错误: {e}")
finally:
    sock.close()
  • getpeername() 用于获取已连接 socket 的对端地址。
  • 它返回的是一个包含 IP 地址和端口号(TCP/IP)或路径(Unix 域 socket)的元组。
  • 必须在 socket 成功连接后调用,否则会导致异常。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/483514.html

赞 (0)
Python QuerySet怎么查数据?Python QuerySet常用方法
上一篇 2026年7月11日 22:01
下一篇 2026年7月11日 22:02

相关推荐

  • 个人云服务器能做什么?个人云服务器搭建网站教程

    个人云服务器不仅是存放文件的硬盘,更是你掌控数字生活的私人数据中心,能实现从网站托管、远程办公到智能家居中枢的全场景自动化控制,很多人对云服务器的印象还停留在“企业专用”或“极客玩具”的阶段,觉得它高冷且难以上手,随着硬件成本的降低和技术的普及,个人云服务器已经变成了极具性价比的数字资产,它就像是你租在云端的独……

    2026年6月17日
    2500
  • 如何利用大数据分析股票投资?股票投资分析大数据分析

    股票投资分析的大数据核心在于利用多维数据清洗与机器学习模型,将非结构化信息转化为可量化的交易信号,从而在复杂市场中识别出具备确定性的Alpha收益机会,大数据如何重构股票投资分析逻辑传统的技术分析和基本面分析往往依赖滞后数据或单一维度,而大数据技术通过整合海量异构数据,实现了从“后视镜”到“雷达”的跨越,业内专……

    2026年7月8日
    11200
  • 该安全证书由您负责吗?网站安全证书过期怎么办

    该安全证书由您自行签发和管理,虽然省去了第三方认证机构的费用,但浏览器会将其标记为“不安全”,仅适用于内网测试或开发环境,绝不可用于面向公众的生产网站,在数字化转型的浪潮中,HTTPS 已成为互联网基础设施的标配,对于许多初创团队、内部系统开发者以及个人技术爱好者而言,购买昂贵的商业 SSL/TLS 证书往往被……

    2026年7月6日
    17500
  • 服务器如何实现快速开机启动?服务器开机加速方法

    服务器实现快速开机启动的核心在于优化硬件自检流程、精简系统服务加载项以及采用先进的启动引导技术,通过合理配置BIOS/UEFI参数、实施数据库与关键服务的并行启动策略,企业可将服务器启动时间从传统的数分钟压缩至几十秒,从而显著降低业务停机成本,提升运维效率,这不仅依赖于硬件性能的提升,更需要系统层面的深度调优……

    2026年3月23日
    9700
  • 高端网站建设机构哪家好?高端网站建设公司怎么选

    在2026年数字化深水区,选择高端网站建设机构的核心价值在于通过前沿技术栈与深度商业策略的融合,将企业官网从低效的信息展示载体,彻底转化为高转化、强品牌、懂营销的自动化增长引擎,2026年高端网站建设的行业重构与价值跃迁传统建站与高端定制的代际差异传统模版建站已无法适配当前的商业语境,据《2026中国B2B数字……

    2026年4月29日
    5100
  • 统一架构服务器有哪些主要优势?,怎么选?

    统一架构服务器是指将计算、存储、网络等资源融合在单一硬件平台或管理框架下的服务器解决方案,主流形态包括超融合基础设施、集成系统、模块化服务器等,目前市场由戴尔、惠普、华为、浪潮等主导,同时以简米科技、酷番云为代表的国内服务商也提供基于统一架构的定制化托管与部署服务,统一架构服务器到底解决了什么问题传统数据中心里……

    2026年7月31日
    1000
  • 服务器如何开启管理员权限,服务器管理员权限设置方法

    服务器开启管理员权限是保障系统安全、实现精细化运维的核心步骤,其本质在于构建最小权限原则下的可控访问机制,正确配置管理员权限,不仅能有效防止恶意攻击和误操作,还能确保服务器在多用户环境下的稳定运行,核心结论在于:开启管理员权限必须遵循“按需分配、审计先行、加密传输”的原则,任何粗暴的权限放权都是服务器安全的重大……

    2026年3月27日
    11200
  • 学Python买什么书好?零基础入门Python编程书籍推荐

    Python不仅是编程入门的首选语言,更是2026年数据分析、人工智能及自动化办公领域的核心驱动力,掌握它能显著提升职场竞争力与开发效率,在2026年的技术生态中,Python的地位早已超越了单纯的“脚本语言”范畴,它像一位不知疲倦的多面手,既能潜入深海处理海量数据,也能在云端搭建复杂的AI模型,甚至还能帮你自……

    2026年7月4日
    16610
  • 个人服务器和云服务器怎么选?云服务器配置怎么选

    个人服务器适合极客折腾与数据掌控,云服务器胜在稳定与弹性扩展,2026年建议新手首选轻量云服务器,老手再考虑自建物理机,选择服务器并非简单的“买硬件”或“租资源”之争,而是对技术能力、维护成本与安全责任的综合权衡,随着2026年云计算技术的进一步下沉,两者界限虽在模糊,但核心逻辑依然清晰:你希望拥有绝对的掌控权……

    2026年5月29日
    5700
  • 服务器免费试用

    选择服务器免费试用时,你实际得到的是云端基础设施的体验权限,而非永久免费资源,你必须清楚试用期时长、配置限制和续费规则才能避免成本失控,服务器免费试用多长时间不同云厂商的免费试用时长差异很大,合理规划时间窗口是降低试错成本的第一步,我见过不少用户因为没看清有效期,业务刚跑起来就被迫付费续费,反而比直接买还贵,主……

    2026年8月4日
    1100

发表回复

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