使用Python请求时如何获取底层socket

2023-11-22

我有一个 Python 脚本,它使用以下命令创建许多短暂的并发连接requests图书馆。我特别需要找出每个连接使用的源端口,并且我认为我需要为此访问底层套接字。有没有办法通过响应对象来获取它?


对于流连接(使用stream=True参数),您可以调用.raw.fileno()响应对象上的方法来获取打开的文件描述符。

您可以使用socket.fromfd(...)从描述符创建 Python 套接字对象的方法:

>>> import requests
>>> import socket
>>> r = requests.get('http://google.com/', stream=True)
>>> s = socket.fromfd(r.raw.fileno(), socket.AF_INET, socket.SOCK_STREAM)
>>> s.getpeername()
('74.125.226.49', 80)
>>> s.getsockname()
('192.168.1.60', 41323)

对于非流式套接字,在返回响应对象之前会清理文件描述符。据我所知,在这种情况下没有办法得到它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python请求时如何获取底层socket 的相关文章

随机推荐

  • 如何在Windows中用Java快速截取桌面(ffmpeg等)?

    我想使用 java 使用 FFMPEG 或其他解决方案来截取我的机器的屏幕截图 我知道linux可以在没有JNI的情况下使用ffmpeg 但是在Windows中运行它不起作用 并且可能需要 JNI 是否有一些简单的Java类 以及其他任何必
  • 如何使用 Visual Studio 将 Unicode 打印到 C 语言的输出控制台?

    正如问题所说 我必须做什么才能将 Unicode 字符打印到输出控制台 我必须使用什么设置 现在我有这个代码 wchar t text L the 来 wprintf L Text is s n text return EXIT SUCCE
  • 我可以使用 Google Maps API 显示自定义地图吗?

    我所说的自定义地图是指自定义地图图块 例如绘制另一个星球的地图 我环顾四周 但找不到任何资源来指导如何在 Google 或任何网站上执行此操作 我知道这是可能的 因为我以前在网站上看到过这样做 但不幸的是 具有该网站链接的网站已关闭 因此我
  • 虚函数和性能 C++

    在您对重复的标题感到畏缩之前 另一个问题不适合我在这里问的问题 IMO 所以 我真的很想在我的应用程序中使用虚拟函数 让事情变得简单一百倍 这不是 OOP 的全部内容吗 但我在某处读到它们是以性能成本为代价的 除了过早优化的同样老套的炒作之
  • 如何在 C# 中从数据表动态构建插入命令

    我在从 C 中的 dataTable 对象动态创建 SQL 插入语句时遇到一些问题 我想知道实现它的最佳实践 这是我的代码片段 到目前为止我已经尝试过 String sqlCommandInsert INSERT INTO dbo RAW
  • 如何从java启动chrome浏览器

    有没有什么聪明的方法可以从 java 类启动 chrome 浏览器 我问这个问题是因为我想要一种智能方式来启动一个应用程序 该应用程序需要在以 Internet Explorer 作为默认浏览器并安装了 java 1 4 2 的计算机上使用
  • PHP排序最近的坐标

    我在 PHP Web 服务中有一个包含经度和纬度的 MySQL 表 我只想向用户发送 5 个最接近的坐标 我编写了计算从坐标到用户在 POST 请求中发送的坐标的距离的方法 但我不确定如何对其进行排序 并且只发回一些坐标 这是距离方法 fu
  • ASIHTTPRequest 将 json 发送到 php 服务器

    在过去的 5 个小时里 我一直在尝试将 json 对象发布到 PHP 脚本 我已阅读所有文档 看起来代码应该可以工作 但事实并非如此 请求已发出并接收正常 但我无法访问发布的 json 数据 或者甚至不知道它是否已正确发送 我不断收到空的
  • 在 Sitecore 中,当向模板添加字段时,有一个名为“共享”的复选框。这是为了什么?

    这似乎是一个愚蠢的问题 但我在我拥有的 sitecore 文档 在线和离线 中可以找到的最接近的答案是共享字段是 跨语言共享 我认为这意味着共享字段的内容在 sitecore 中该项目的所有翻译中都是相同的 那是对的吗 是的 这是正确的 项
  • 有没有办法将 css 文件附加到 jEditorPane?

    足够简单的问题 我有一个包含 HTML 的字符串 该字符串正在传递给 JEditorPane 供用户使用 我可以附加 CSS 文件 或包含 CSS 规则的字符串 以允许更具体的文本样式吗 The HTMLEditorKit默认情况下查找文件
  • 如何检测行的开头,或者:“当前上下文中不存在名称‘getCharPositionInLine’”

    我正在尝试创建一个行开头标记 lexer grammar ScriptLexer BOL getCharPositionInLine 0 Beginning Of Line token 但上面会发出错误 The name getCharPo
  • 根据jstl中的索引获取arraylist的元素[重复]

    这个问题在这里已经有答案了 这也许是一件相对简单的事情 但由于某种原因我似乎没有做对 如何根据索引从jstl中的arrayList中获取元素 在纯java中 假设我有这个数组列表 ArrayList lt String gt colors
  • 将 MATLAB 图形保存为 PDF,质量为 300 DPI,居中

    我想将 MATLAB 图另存为 PDF 质量为 300DPI 并居中 到目前为止 我设法保存它 但图像似乎被裁剪了 我将页面类型更改为A3并解决了问题 但我正在寻找更优雅的东西 我是通过 GUI 执行此操作 但也许在 MATLAB 中使用命
  • Python 按键和按键释放监听器

    我正在使用 python 代码控制一辆遥控玩具车 截至目前 代码如下 def getkey fd sys stdin fileno old termios tcgetattr fd new termios tcgetattr fd new
  • 开源.NET富文本编辑器UserControl与GUI全部实现[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在编写一个数据输入程序 其中最后一个字段将是一个 RichTextBox 供用户输入备注 并格式化为打印 是否有免费或开源的 NET WinForms 富文本编辑器 并且所有 G
  • 重定向系统中的 cookie 令人困惑

    我从事 PHP 工作 我想在登录后将页面重定向到我想访问的最后一个页面 但 5 小时后我仍然堆在这里 但我仍然没有成功 这是架构 我有 3 个 php 文件 newest php before login signin php before
  • 运行时检查失败 #2 - 变量周围的堆栈已损坏

    我已经在 stackoverflow 上看到了一些问题 但没有一个能解决我的问题 我在 C 中有该代码 include
  • Switch Case 语句中出现重复 const 声明错误

    我有以下代码 但收到错误 重复声明 query url switch condition case complex const query url something break default const query url someth
  • 如何正确调用TFS中的GetWorkspace?

    目前当我打电话时GetWorkspace I get ItemNotMappedException例外 但是当我手动迭代工作区时 我可以让我的代码正常工作 这太奇怪了 我想知道我是否应该在调用之前调用一些刷新或其他东西GetWorkspac
  • 使用Python请求时如何获取底层socket

    我有一个 Python 脚本 它使用以下命令创建许多短暂的并发连接requests图书馆 我特别需要找出每个连接使用的源端口 并且我认为我需要为此访问底层套接字 有没有办法通过响应对象来获取它 对于流连接 使用stream True参数 您