本帖最后由 wkdxz 于 2022-11-19 17:51 编辑
前言:
Q:既然有成品,为什么不发在『原创发布区』?
A:因为这个原理和代码太简单了,稍微懂一点Python的兄弟都能写。而且此类软件在论坛一抓一大把,发原创区实在是愧对“原创”二字。所以只能把粗陋的代码发出来,兄弟们随便看看。代码使用Bat也能写,不过不方便取值,速度也要慢得多。要使用Bat来写的兄弟们,可以自行尝试。
更新日志
11.13
- 最新使用方法见2212楼(点击传送),具体能不能用请自行测试。我电脑上软件环境要求比较严,没法一一测试。
- 文末已提供最新源码和成品下载(免密下载),喜欢的兄弟们,欢迎回来好评
11.11- 修复速度太快的Bug(增加了100多个IP,扫描速度会慢一点,但可选范围更大,会有意外收获)
- 设置hosts,完记得cmd里运行一下:ipconfig /flushdns
运行演示:
使用方法:
我也没想到好多兄弟不知道怎么编辑Hosts文件。在这里简单介绍一下:
- 使用软件匹配出最佳IP后
- 按任意键可以定位hosts文件
- 右键编辑就可以了(需要粘贴的内容已复制到剪贴板,在后面直接粘贴即可)
- 编辑完运行一个命令:
[Asm] 纯文本查看 复制代码 ipconfig /flushdns
IP来源: https://github.com/Ponderfly/GoogleTranslateIpCheck/blob/master/src/GoogleTranslateIpCheck/GoogleTranslateIpCheck/ip.txt
原理:
对ip列表逐个ping,取响应时间最小的,作为最佳ip。
将ip地址和translate.googleapis.com拼接,复制到剪贴板,方便手动写入到Hosts文件(C:\Windows\System32\drivers\etc\hosts)里面。
只提供设置参考,不能直接帮你设置hosts文件,懒得写!
与IP来源提供的软件相比,唯一优势就是,快!一般10秒内出结果。自己下载来感受下就知道了
核心源码:
ping ip 获取响应时间
[Python] 纯文本查看 复制代码 def pingInfo(ip):
'''ping Ip 获取ms 最终取最小值'''
cmd = f'ping /n 1 {ip}'
for echoTxt in os.popen(cmd):
if '请求超时。' in echoTxt:
ipAndSpeed.append([ip, 99999])
print('f{ip}\t超时')
return
if echoTxt := echoTxt.strip():
echoTxt = echoTxt.replace(' ', '')
if ',平均=' in echoTxt:
ms = int(echoTxt.split('=')[-1].replace('ms', '')) # 分割平均=xxms
ipAndSpeed.append([ip, ms])
print(f'{ip}\t{ms}ms')
return
修改Hosts文件
[Python] 纯文本查看 复制代码 def changeHostsFile(hosts, fastIp, translateApi):
'''注释掉之前添加的旧IP 末尾添加新的'''
hostList = txtToList(hosts, False)
newHostList = []
for host in hostList:
if host[0] != '#' and translateApi in host.lower():
host = f'# {host} # old iP' #注释旧IP
newHostList.append(host)
newHostList.append(f'{fastIp}\t{translateApi}') #添加新IP
with open(hosts, 'w') as f:
f.write('\n'.join(newHostList))
os.popen('ipconfig /flushdns') #清除 DNS 解析程序缓存
完整源码 and 成品exe
部分系统需要:右键—管理员身份运行,才能自动设置hosts
源码下载:
【源码】google translation best ip.7z
(2.01 KB, 下载次数: 953)
成品exe下载:https://wkdxz.lanzout.com/inEHg0fuaeid 密码:wkdxz
|