我希望定期检查我的SOCKS服务器是否正常工作。为了做到这一点,我想通过SOCKS服务器ping 8.8.8.8(谷歌DNS服务器)。
是否有其他推荐的方法? 如果这是最佳方法,如何使用Python通过SOCKS进行ping?
是否有其他推荐的方法? 如果这是最佳方法,如何使用Python通过SOCKS进行ping?
httping
来检查网络,而不是普通的ping
。
ICMP工作在OSI模型的第3层(网络层),SOCKS工作在第5层(会话层),httping工作在第7层(应用层),因此Ping:将ICMP ECHO_REQUEST数据包发送到网络主机
httping:测量Web服务器的延迟和吞吐量
ping
消息无法通过SOCKS传递,但httping
消息可以。httping -x 127.0.0.1:1080 -g http://www.google.com -5
通过SOCKS5 httping Google的屏幕截图
httping使用
httping [options]
-5 选定的代理服务器是SOCKS5服务器。
-g url 这选择要探测的URL。例如:http://localhost/
-x proxyhost[:port] 使用代理服务器进行探测。
curl --socks5 127.0.0.1:1080 ifconfig.me
curl: (7) Unable to receive initial SOCKS5 response.
这是我会采取的方式,最简单的方法可能是使用子进程执行您操作系统的ping命令,并使用正则表达式解析输出。
编辑
Activestate 上有一个示例,基本可以实现你想要的功能。你只需要将套接字更改为指定代理即可,但这不是我的专业领域,所以我不确定该如何实现。