Skip to content

[Help] 【DNS污染】疑似API源被劫持 #518

@softmanmaker

Description

@softmanmaker

请确认注意事项

  • 你已经在GitHub Issues和Discussions里搜索过类似的问题,并且没找到想要的答案。
  • 你使用的是最新的jmcomic版本
  • 非GitHub Actions类问题(此类问题请专门到置顶的Issue反馈)

发生Bug时,你的使用方式?

Python代码

你是否在禁漫官方网页或APP,验证过相应的功能是正常的?

我要反馈的bug无需验证/不方便验证

代码/option配置

无关

描述bug现象(你预期的结果,与实际结果的差别)

虽然感觉不完全算bug但是代码里换源应该能解决(

Traceback (most recent call last):
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/curl_cffi/requests/session.py", line 631, in request
    c.perform()
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/curl_cffi/curl.py", line 333, in perform
    self._check_error(ret, "perform")
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/curl_cffi/curl.py", line 155, in _check_error
    raise error
curl_cffi.curl.CurlError: Failed to perform, curl: (7) Failed to connect to jm-88.cc port 443 after 3 ms: Could not connect to server. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ginojin/qqbot/bot.py", line 21, in <module>
    nonebot.load_plugins("plugins")  # 加载插件目录下的所有插件
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/nonebot/plugin/load.py", line 55, in load_plugins
    return manager.load_all_plugins()
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/nonebot/plugin/manager.py", line 205, in load_all_plugins
    return set(
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/nonebot/plugin/manager.py", line 206, in <genexpr>
    filter(None, (self.load_plugin(name) for name in self.available_plugins))
> File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/nonebot/plugin/manager.py", line 171, in load_plugin
    module = importlib.import_module(self._searched_plugin_ids[name])
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/nonebot/plugin/manager.py", line 257, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/ginojin/qqbot/plugins/jmcomic/__init__.py", line 72, in <module>
    db_utils = DbUtils(option.build_jm_client())
  File "/home/ginojin/qqbot/plugins/jmcomic/jmutils.py", line 254, in build_jm_client
    self.html.build_jm_client(), self.api.build_jm_client()
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/common/util/decorator_util.py", line 63, in func_exec
    attr = func(*args, **kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/jmcomic/jm_option.py", line 374, in build_jm_client
    return self.new_jm_client(**kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/jmcomic/jm_option.py", line 441, in new_jm_client
    domain_list=decide_domain_list(),
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/jmcomic/jm_option.py", line 423, in decide_domain_list
    domain_list = self.decide_client_domain(impl)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/jmcomic/jm_option.py", line 475, in decide_client_domain
    return [JmModuleConfig.get_html_domain()]
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/common/util/decorator_util.py", line 63, in func_exec
    attr = func(*args, **kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/jmcomic/jm_config.py", line 316, in get_html_domain
    return JmcomicText.parse_to_jm_domain(cls.get_html_url(postman))
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/jmcomic/jm_config.py", line 326, in get_html_url
    url = postman.with_redirect_catching().get(cls.JM_REDIRECT_URL)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/common/postman/postman_proxy.py", line 158, in get
    return self.request(url, kwargs, super().get)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/common/postman/postman_proxy.py", line 139, in request
    resp = method(url, **kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/common/postman/postman_proxy.py", line 10, in get
    return self.postman.get(*args, **kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/common/postman/postman_api.py", line 126, in get
    return self.__get__()(url, **kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/curl_cffi/requests/session.py", line 652, in get
    return self.request(method="GET", url=url, **kwargs)
  File "/home/ginojin/qqbot/venv/lib/python3.12/site-packages/curl_cffi/requests/session.py", line 638, in request
    raise error(str(e), e.code, rsp) from e
curl_cffi.requests.exceptions.ConnectionError: Failed to perform, curl: (7) Failed to connect to jm-88.cc port 443 after 3 ms: Could not connect to server. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.

看起来是jm-88.cc这个域名连不上了,ping了一下发现域名被解析到127.0.1.1,疑似是运营商dns劫持,我这边使用的是电信的网络,不确定其他运营商有没有劫持这个域名。

其他可提供的信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions