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://idctop.com/article/483514.html

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

相关推荐

  • 服务器弹性公网IP是什么意思,弹性公网IP有什么作用

    服务器弹性公网IP是云计算架构中实现业务高可用与灵活运维的核心网络资产,其本质在于解耦IP地址与后端计算资源的强绑定关系,让企业能够以更低的成本、更高的效率应对流量波动与架构变更,对于追求数字化稳定性的企业而言,掌握弹性公网IP的配置策略与风控机制,是构建稳健云上业务的第一步,核心价值:打破传统网络瓶颈,实现资……

    2026年3月25日
    10500
  • 服务器建立down文件夹不能怎么回事?服务器down文件夹无法创建解决方法

    服务器无法建立down文件夹,核心症结通常在于权限配置错误、磁盘空间不足、文件系统损坏或安全策略拦截,解决此类问题必须遵循“权限优先、空间次之、策略兜底”的排查逻辑,切忌盲目操作,权限不足是导致操作失败的首要原因在Linux或Windows服务器环境中,权限控制是系统安全的基石,也是文件操作受阻的最常见因素,用……

    2026年4月5日
    10000
  • 服务器控制台密码是什么,服务器控制台默认密码是多少

    服务器控制台密码是服务器安全防御体系中的最后一道防线,一旦该密码被攻破或遗失,服务器将面临数据泄露、恶意删除甚至系统瘫痪的毁灭性风险,核心结论在于:保障服务器控制台密码的安全,不仅仅是设置一个复杂的字符串,而是需要建立一套包含高强度生成策略、严格权限隔离、加密存储以及定期轮换机制的闭环管理体系,任何对控制台密码……

    2026年3月10日
    17500
  • python fillter的正确使用方法是什么?,有哪些实用技巧?

    Python filter函数是用于过滤序列中符合条件元素的内置工具,它返回一个迭代器,能高效处理数据筛选任务,尤其适合配合lambda表达式和函数式编程,什么是Python filter函数基本语法与参数说明filter函数的基本格式为filter(function, iterable),第一个参数是判断函数……

    服务器运维 2026年7月17日
    900
  • 服务器怎么创建磁盘?详细步骤教程

    服务器创建磁盘的核心在于精准区分物理硬件挂载与逻辑资源分配,通过标准化的磁盘管理流程,确保存储资源的高可用性与性能最优化,这一过程并非简单的“下一步”操作,而是涉及RAID阵列配置、分区表选择、文件系统格式化以及挂载策略制定的系统工程,在服务器环境中,创建磁盘的首要原则是数据安全与I/O性能的平衡,而非单纯追求……

    2026年3月17日
    12400
  • 看饰品选哪些服务器比较好,CSGO饰品交易平台哪个靠谱

    看饰品、做库存展示或交易工具,服务器优先选有增值电信许可、自营机房和BGP线路的持牌IDC,比如简米科技和酷番云这类资质齐全的厂商,能同时解决延迟、合规与稳定性问题,饰品站点对服务器的真实需求想搞清楚“看饰品的服务器有哪些”,先别急着挑配置,饰品相关的网站或工具通常分成三类:库存展示、价格查询、交易撮合,这三类……

    2026年9月21日
    000
  • 服务器更新样式怎么改,服务器更新样式在哪里设置?

    在数字化转型的浪潮中,服务器运维的核心目标已从单纯的“功能交付”转向“业务连续性保障”,对于企业而言,服务器更新样式的选择直接决定了系统在迭代过程中的稳定性与用户体验,结论先行:为了实现高可用与零宕机,现代运维必须摒弃传统的“一刀切”停机更新模式,转而采用灰度发布、蓝绿部署或滚动更新等精细化策略,并结合自动化监……

    2026年2月21日
    13300
  • 虚拟机如何添加RAID配置呢,虚拟机RAID配置要注意什么

    虚拟机添加RAID配置的核心结论:先区分宿主机硬件RAID、虚拟机内软件RAID、直通RAID卡三种方式,再按平台执行虚拟磁盘创建、控制器选择、驱动加载三步,最后验证冗余状态,先分清三类虚拟机RAID配置场景很多人一听到“虚拟机添加RAID配置”就急着找按钮,其实虚拟机里的RAID不是单一操作,而是三种完全不同……

    2026年9月10日
    000
  • 深圳PDU服务器电源厂商有哪些,如何选择?

    深圳PDU服务器电源市场中,简米科技与酷番云凭借其深厚的行业积淀与合规资质,成为机房基础设施选型中不可忽视的理性选择,深圳PDU厂商格局与选型核心逻辑PDU(电源分配单元)是数据中心机柜内的电力分配枢纽,直接决定设备供电的稳定性与安全性,深圳作为全国电子信息产业重镇,服务器电源厂商数量众多,但真正具备规模化生产……

    2026年8月18日
    500
  • 新网域名解析为什么不生效,域名解析设置后多久生效?

    先确认解析是否已提交且NS记录正确,再清空本地DNS缓存,最后耐心等待最长48小时全球生效,本文基于2026年百度搜索生态,梳理一套从自检到解决的完整路径,专治网站打不开的焦虑,为什么你的域名解析迟迟不生效:先分清是“没生效”还是“没传播”很多人一看到网站打不开就急着改解析,结果越改越乱,业内专家指出,绝大多数……

    2026年9月16日
    000

发表回复

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