kitUIN / PicImageSearch

整合图片识别 API,用于以图搜源 / Aggregator for Reverse Image Search API
https://pic-image-search.kituin.fun/
MIT License
392 stars 46 forks source link

feat: 添加绕过DNS污染 #26

Closed chinoll closed 2 years ago

NekoAria commented 2 years ago

我觉得不如直接用 aiohttp-doh ,后续维护还不用改动这么多地方,只需要改 network.py 。

chinoll commented 2 years ago

我觉得不如直接用 aiohttp-doh ,后续维护还不用改动这么多地方,只需要改 network.py 。

aiohttp-doh似乎不维护了

NekoAria commented 2 years ago

我觉得不如直接用 aiohttp-doh ,后续维护还不用改动这么多地方,只需要改 network.py 。

aiohttp-doh似乎不维护了

可以像他那样封装一个以 aiohttp.abc.AbstractResolver 为基类的 resolver 类。

NekoAria commented 2 years ago

看了下文档,似乎已经废弃了,要实现估计要另外的写法。 试了下还是有的,不过文档里没提到。

NekoAria commented 2 years ago

直接抄 pixivpy-asyncbypass_sni.py 了(

chinoll commented 2 years ago

直接抄 pixivpy-asyncbypass_sni.py 了(

似乎不太行,在本地修改hosts屏蔽saucenao之后就报错了

NekoAria commented 2 years ago

直接抄 pixivpy-asyncbypass_sni.py 了(

似乎不太行,在本地修改hosts屏蔽saucenao之后就报错了

没法通过修改 hosts 来模拟 dns 污染吧。。 我测试了下你之前的版本也报错啊。

NekoAria commented 2 years ago

因为 hosts 文件的优先级高于 DNS ,所以没法通过修改 hosts 文件的方式来模拟 DNS 污染。 不然早些年也不至于广泛传播这个方法了:通过修改 hosts 来访问各种不能正常访问的网站。

NekoAria commented 2 years ago

这么简单的道理,我居然也一时没想到(

NekoAria commented 2 years ago

先合并了,发个新版本测试一下( 在服务器上装 BIND 模拟 DNS 污染看看。

chinoll commented 2 years ago

因为 hosts 文件的优先级高于 DNS ,所以没法通过修改 hosts 文件的方式来模拟 DNS 污染。 不然早些年也不至于广泛传播这个方法了:通过修改 hosts 来访问各种不能正常访问的网站。

想了想,通过修改hosts来模拟DNS污染应该是没问题的。 DNS污染:返回虚假的IP 修改hosts:也是返回虚假的IP 可以在没有DNS污染的环境中来模拟DNS污染

NekoAria commented 2 years ago

因为 hosts 文件的优先级高于 DNS ,所以没法通过修改 hosts 文件的方式来模拟 DNS 污染。 不然早些年也不至于广泛传播这个方法了:通过修改 hosts 来访问各种不能正常访问的网站。

想了想,通过修改hosts来模拟DNS污染应该是没问题的。 DNS污染:返回虚假的IP 修改hosts:也是返回虚假的IP 可以在没有DNS污染的环境中来模拟DNS污染

那说明你还是不知道为什么会有 DNS 污染。。以及为什么修改 hosts 文件就能访问被 DNS 污染的网站。

chinoll commented 2 years ago

因为 hosts 文件的优先级高于 DNS ,所以没法通过修改 hosts 文件的方式来模拟 DNS 污染。 不然早些年也不至于广泛传播这个方法了:通过修改 hosts 来访问各种不能正常访问的网站。

想了想,通过修改hosts来模拟DNS污染应该是没问题的。 DNS污染:返回虚假的IP 修改hosts:也是返回虚假的IP 可以在没有DNS污染的环境中来模拟DNS污染

那说明你还是不知道为什么会有 DNS 污染。。以及为什么修改 hosts 文件就能访问被 DNS 污染的网站。

不冲突。。 DNS的作用是根据域名返回IP,hosts也是,就算有查询优先级也不影响。 DNS和hosts对于上层应用是透明的,在上层应用看来是一样的,没什么区别。 域名->DNS->IP 域名->hosts->IP 在上层应用看来并没有什么区别 不过都merge了就算了,能用就好

NekoAria commented 2 years ago

因为 hosts 文件的优先级高于 DNS ,所以没法通过修改 hosts 文件的方式来模拟 DNS 污染。 不然早些年也不至于广泛传播这个方法了:通过修改 hosts 来访问各种不能正常访问的网站。

想了想,通过修改hosts来模拟DNS污染应该是没问题的。 DNS污染:返回虚假的IP 修改hosts:也是返回虚假的IP 可以在没有DNS污染的环境中来模拟DNS污染

那说明你还是不知道为什么会有 DNS 污染。。以及为什么修改 hosts 文件就能访问被 DNS 污染的网站。

不冲突。。 DNS的作用是根据域名返回IP,hosts也是,就算有查询优先级也不影响。 DNS和hosts对于上层应用是透明的,在上层应用看来是一样的,没什么区别。 域名->DNS->IP 域名->hosts->IP 在上层应用看来并没有什么区别 不过都merge了就算了,能用就好

可是我不管是 Linux 服务器上测试还是 Windows PC 上测试,都不能用( 之前大费周折弄 BIND 毫无意义。 Linux 服务器上遇到超时,Windows 上遇到 SSL 问题。

chinoll commented 2 years ago

因为 hosts 文件的优先级高于 DNS ,所以没法通过修改 hosts 文件的方式来模拟 DNS 污染。 不然早些年也不至于广泛传播这个方法了:通过修改 hosts 来访问各种不能正常访问的网站。

想了想,通过修改hosts来模拟DNS污染应该是没问题的。 DNS污染:返回虚假的IP 修改hosts:也是返回虚假的IP 可以在没有DNS污染的环境中来模拟DNS污染

那说明你还是不知道为什么会有 DNS 污染。。以及为什么修改 hosts 文件就能访问被 DNS 污染的网站。

不冲突。。 DNS的作用是根据域名返回IP,hosts也是,就算有查询优先级也不影响。 DNS和hosts对于上层应用是透明的,在上层应用看来是一样的,没什么区别。 域名->DNS->IP 域名->hosts->IP 在上层应用看来并没有什么区别 不过都merge了就算了,能用就好

可是我不管是 Linux 服务器上测试还是 Windows PC 上测试,都不能用( 之前大费周折弄 BIND 毫无意义。 Linux 服务器上遇到超时,Windows 上遇到 SSL 问题。

我也遇到了,Windows报SSL,WSL1也是 手边暂时用不了Linux服务器,没测