python - mitmdump 错误:Windows 中的 select() 问题中的文件描述符过多
问题描述
我尝试使用 mitmdump 和 python 脚本捕获 Android 应用程序上的请求,但 mitmdump 似乎很容易被阻止并引发以下错误:
Traceback (most recent call last):
File "D:\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "D:\Python\Python39\Scripts\mitmdump.exe\__main__.py", line 7, in <module>
File "D:\Python\Python39\lib\site-packages\mitmproxy\tools\main.py", line 147, in mitmdump
m = run(dump.DumpMaster, cmdline.mitmdump, args, extra)
File "D:\Python\Python39\lib\site-packages\mitmproxy\tools\main.py", line 114, in run
master.run()
File "D:\Python\Python39\lib\site-packages\mitmproxy\master.py", line 81, in run
self.run_loop(loop.run_forever)
File "D:\Python\Python39\lib\site-packages\mitmproxy\master.py", line 64, in run_loop
self.shutdown()
File "D:\Python\Python39\lib\site-packages\mitmproxy\master.py", line 100, in shutdown
self.event_loop.run_until_complete(asyncio.wrap_future(ret))
File "D:\Python\Python39\lib\asyncio\base_events.py", line 629, in run_until_complete
self.run_forever()
File "D:\Python\Python39\lib\asyncio\base_events.py", line 596, in run_forever
self._run_once()
File "D:\Python\Python39\lib\asyncio\base_events.py", line 1854, in _run_once
event_list = self._selector.select(timeout)
File "D:\Python\Python39\lib\selectors.py", line 324, in select
r, w, _ = self._select(self._readers, self._writers, [], timeout)
File "D:\Python\Python39\lib\selectors.py", line 315, in _select
r, w, x = select.select(r, w, w, timeout)
ValueError: too many file descriptors in select()
mitmdump 服务器在 Windows 中运行。它似乎限制了mitmdump的并发,但我不知道如何修改源代码。有人可以分享一些想法吗?
解决方案
最新的开发版本(最终将是 8.0)在 Windows 上使用 ProactorEventLoop,它解决了这个问题。
现在,您可以减少并发连接,也可以升级到开发快照。
推荐阅读
- python - 如何从张量流 2D 张量生成 2D 张量,仅在轴 = 1(其中 n = 1,2,3 .....)的 (16n+1) 索引处获取元素
- python - 初始化没有列名的数据框
- sql - SQL Server 语句到 DAX 公式
- mysql - 在 MySQL 中,如何使用 WITH 替换变量?
- python - 4 Seasons - 在 pyCharm 中不产生输出,但在其他 IDE 中显示无效
- javascript - 设置 Javascript 对象以使用 Int8 和 Int16
- javascript - 如何从 Javascript 中的 IPv6 前缀生成 IPv6 掩码?
- java - 我是否需要创建另一个活动来显示一些信息?(安卓) (Java)
- php - 使用重定向插件和正则表达式仅将 pdf 文件从 html 站点重定向到新的 wordpress 目录
- r - 有没有办法在 R 中制作具有不同变量对的二维表?