5
from os import system
system("ping www.twitter.com")
system("ping www.yahoo.com")
system("ping www.facebook.com")

我在中国,推特和脸书在这里被禁止。Clash for Windows我可以使用软件在浏览器中打开它们。

我必须从 Twitter 下载推文。所以我需要使用 Python ping 网站来获取推文。虽然我无法 ping 网站。

如何让我的 Python 代码使用Clash for Windows.

上述代码的输出:

Pinging www.twitter.com [108.160.169.186] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 108.160.169.186:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Pinging new-fp-shed.wg1.b.yahoo.com [180.222.102.201] with 32 bytes of data:
Reply from 180.222.102.201: bytes=32 time=258ms TTL=42
Reply from 180.222.102.201: bytes=32 time=229ms TTL=42
Reply from 180.222.102.201: bytes=32 time=230ms TTL=42
Request timed out.

Ping statistics for 180.222.102.201:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
    Minimum = 229ms, Maximum = 258ms, Average = 239ms

Pinging www.facebook.com [69.63.184.14] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 69.63.184.14:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

操作系统:Windows 10(更新到最新版本)。使用 PyCharm 作为我的 IDE。

4

7 回答 7

1

您在评论中说您正在使用 Clash,但 Clash 不是 VPN:

Clash - Go 中基于规则的隧道。

特征:

  • 支持身份验证的本地 HTTP/HTTPS/SOCKS 服务器
  • VMess、Shadowsocks、Trojan、Snell 协议支持远程连接
  • 内置 DNS 服务器,旨在最大限度地减少 DNS 污染攻击的影响,支持 DoH/DoT 上游和假 IP。
  • 基于域、GEOIP、IP CIDR 或端口的规则将数据包转发到不同的节点
  • 远程组允许用户实施强大的规则。支持自动回退、负载平衡或基于延迟的自动选择节点
  • 远程提供者,允许用户远程获取节点列表,而不是在配置中硬编码
  • Netfilter TCP 重定向。使用 iptables 在您的 Internet 网关上部署 Clash。
  • 全面的 HTTP RESTful API 控制器

来源:https ://github.com/Dreamacro/clash

我不确定它是如何工作的,我目前的理解是它允许你使用代理。

虽然它也有 TUN 模式作为“高级功能”(不知道这是什么意思,我看不到购买“高级”的选项),它可能与 VPN 类似,但我不确定:

高级功能:

  • macOS、Linux 和 Windows 上的 TUN 模式。文档
  • 通过脚本匹配您的隧道
  • 规则提供者

您尝试使用的Clash for Windows是 Clash 的 GUI。

文档可用,但只有中文:

https://github.com/Fndroid/clash-win-docs-new

截屏:

Windows 冲突

我尝试使用它,但我不知道如何配置它。它根本没有用。


我看到了许多可能的解决方案:

  1. 您可以切换到正确的 VPN。付费 VPN 比免费 VPN 更受推荐。费用通常为 3-10 美元/月,具体取决于报价。或者,您可以尝试在自己的 VPS 上设置 OpenVPN,它可能会便宜一些,但不一定。
  2. 您可以将脚本配置为使用代理。requests支持它的库:带有 Python 'Requests' 模块的代理
  3. 您可以尝试阅读Clash for Windows文档以查看您尝试实现的目标是否可行。System Proxy也许在上面的屏幕截图中打开就足够了?
  4. 您可以尝试在 TUN 模式下配置 Clash。在我看来,这可能比解决方案 1 和 2 更困难。如果您更喜欢这种方式,我建议您彻底阅读 Clash 文档:https ://github.com/Dreamacro/clash/wiki/premium-core-features#tun-设备

如果您负担得起,我建议在大多数用例中使用解决方案 1。我了解您更喜欢免费的解决方案,但是服务器不是免费的,有人需要承担运行它们的成本(硬件、电力等)

于 2021-06-12T14:42:20.030 回答
0

当您运行并激活 VPN 时,它应该通过 VPN 服务器重定向所有流量。如果它没有重定向所有流量,那么它可能被配置为仅重定向 webbrowser 流量。此外,您可能没有使用真正的 VPN,而是使用代理。

请分享您使用的是哪个 VPN,它将帮助我们为您提供帮助。


您可以手动启动 VPN,然后尝试执行您的 Python 代码。

或者,您可以控制您的 VPN 何时从 Python 运行。每个 VPN 提供商都需要不同的库。请告诉我们您使用的是哪种 VPN。

这是使用nordvpn_switcher 包的 NordVPN 的工作示例:


import time 
from nordvpn_switcher import initialize_VPN,rotate_VPN,terminate_VPN

initialize_VPN(save=1,area_input=['complete rotation'])

for i in range(1):
    rotate_VPN()

    from os import system
    system("ping www.twitter.com")
    system("ping www.yahoo.com")
    system("ping www.facebook.com")


    print('\nDo whatever you want here (e.g. pinging). Pausing for 10 seconds...\n')
    time.sleep(10)

terminate_VPN()

于 2021-06-07T17:38:57.667 回答
0

这是解决方案:

  1. 前往https://www.wintun.net下载最新版本,将正确的 wintun.dll 复制到 Clash 主目录
  2. 重新启动 Clash for windows
  3. 打开碰撞仪表板,打开 TUN 模式

https://github.com/Dreamacro/clash/wiki/premium-core-features#windows

于 2022-01-13T06:44:50.433 回答
0

Tor 使用 SOCKS 5 代理服务器来提供匿名性。如果您使用 Tor,有两种方法可以使用 SOCKS 5 代理,一种是在应用程序级别(浏览器、python 代码等)配置它,另一种是在网络接口级别配置。如果您使用的是 Tor,只需遵循这个答案,默认情况下,socks 服务器在 localhost:9050 运行 -如何通过 socks 代理使 python 请求工作 由于您没有做任何事情并且它已经在工作,我猜您正在使用基于隧道的 VPN。在这种情况下,它应该自动工作。在您的情况下,VPN 提供商可能会阻止 ping。

Ping 使用 ICMP 协议,而 HTTP/HTTPS 在传输层(在 OSI 模型中)使用 TCP 协议。它们是非常不同的东西,一个工作并不能保证另一个工作。在许多情况下,ping 被不支持 ICMP 协议的服务器或其他中间件阻止。例如,大多数云提供商在其网络组件中不支持 ICMP 协议。Azure 没有,因为他们的负载均衡器。因此,与其尝试 ping,不如尝试真正的 http 请求。以下是示例代码

import requests
r = requests.get("www.google.com")
于 2021-06-12T13:02:02.370 回答
0

有多种 Python 库可以为您提供帮助。openpyn就是其中之一。首先,在终端中调用此命令进行设置:

sudo openpyn --init

之后,您的所有 Internet 流量都可以使用以下命令重定向到 VPN 服务器:

openpyn us

上面的命令是默认的,将所有流量转移到美国。可以选择其他位置,请参阅上面的链接了解更多信息。

一旦您的流量被重定向,您就可以像以前一样自由地查看被禁止的网站:

from os import system
system("ping www.twitter.com")
system("ping www.facebook.com")
于 2021-06-05T20:29:22.630 回答
0

您可以使用以下代码:

from ping3 import ping

p=ping("example.com")

print(p)
于 2021-10-24T15:32:23.583 回答
-1

如果它与 Python 或网络相关,让我们尝试隔离此问题。

ping如果您直接在shell中运行它是否有效?

ping twitter.com

您的 VPN 可能具有阻止来自 Internet 的 Ping 的设置。它应该是防火墙中的配置之一。

于 2021-06-05T15:44:59.870 回答