Cygwin Bash自建函数google-translate-ip:通过SSH连接远程服务器查询Google翻译解析IP,并替换至Windows本地Hosts文件

概述:

最近几个月。Google翻译服务器老是不间断抽风,即便配置了科x学上网的环境下,依然不够稳定,导致很多依赖Google翻译的软件和服务无法正常使用(比如浏览器自带的右键翻译,命令行工具translate-shell等均无法使用),经过测试,发现是因为本地网络环境下总是频繁拿到Google翻译域名的错误解析IP,导致服务中断,每次手动测试拿到正确的IP加到hosts文件后,服务恢复正常,但长期使用下来,发现IP不唯一且不固定,不是每个IP都长期可用,老是手动修改只会不胜其烦,特编写此命令函数,一键查询并替换Google翻译主机IP至本地hosts文件(C:\WINDOWS\System32\drivers\etc\hosts)。

另:你还可以配合Windows任务计划功能实现无人值守定时自动替换域名解析的目的,此处不再赘述!

说明:

1)、 函数通过SSH连接远程服务器通过curl命令拿到解析IP,并替换至本地Hosts文件,替换操作只会影响域名translate.googleapis.com相关的行,hosts文件中其余自定义的域名不受影响;
2)、 注意:替换操作需要管理员权限才能顺利完成,否则会报错(换言之,你可能需要执行命令sudo google-translate-ip --replace 来执行此操作)!

函数代码:

注:请确保事先已通过~/.ssh/config配置了可用的SSH免密登录服务器,将代码中的vps01替换成你实际可用的服务器名称!

google-translate-ip() {
	#通过SSH连接海外可靠的服务器获取Google翻译IP并替换到本地hosts文件
	local winHostsFile="$SYSTEMROOT\\System32\\drivers\\etc\\hosts"
	echo "获取Google Translate远程解析IP,请稍等..."
	local resolveIP=$(\\ssh vps01 "curl -v https://translate.googleapis.com 2>&1|grep 'Connected to'|awk -F '[()]' '{print \$2}'") #ssh命令从远程服务器通过curl获取解析结果(此处不通过ping命令获取是为了规避ICMP或UDP流量被劫持的情况...)
	
	[ -z "$resolveIP" ] && echo "未获取到有效IP!" && return
	local resolveLine="$resolveIP   translate.googleapis.com"
	echo -e "获取到的结果:"
	echo -e "\t$resolveLine\n"
	
	if [[ "${1,,}" == "--replace" ]];then
		echo -e "替换解析记录至Host文件..."
		awk -i inplace '/^[^#]+translate\.googleapis\.com.*$/{print "'"${resolveLine}"'";replaced=1;next}{print}END{if(replaced!=1) print "'"${resolveLine}"'";}' "$winHostsFile"  #原地替换hosts文件,注意此行需要以管理员权限执行方可凑效
		[ $? -eq 2 ] && print_color 9 "操作失败,无法替换文件,请以 sudo 权限运行此命令重试!"
		echo -e "Done..."
	else
		echo -e "提示:可加 --replace 选项将解析结果替换到本地Hosts文件,未找到相关记录则在文件末尾添加解析!"
		echo -e "eg:\n\t\`google-translate-ip --replace\`\n"
		echo -e "注:仅替换 translate.googleapis.com 对应的解析行,其余自定义的域名不受影响"
	fi
}

使用截图:


命令行翻译工具:

有关命令行翻译工具translate-shell请参看本博客另一篇文章:
命令行翻译工具translate-shell劫持同名函数trans脚本,自动判断参数进行中翻英或英翻中,并自动朗读语音


以下资料来源于网络:

一些目前暂时可用的Google翻译IP地址收集:

142.250.4.90 translate.googleapis.com
172.253.114.90 translate.googleapis.com
172.217.203.90 translate.googleapis.com
172.253.112.90 translate.googleapis.com
142.250.9.90 translate.googleapis.com
172.253.116.90 translate.googleapis.com
142.250.97.90 translate.googleapis.com
142.250.30.90 translate.googleapis.com
142.250.111.90 translate.googleapis.com
172.217.215.90 translate.googleapis.com
142.250.11.90 translate.googleapis.com
142.251.9.90 translate.googleapis.com
108.177.122.90 translate.googleapis.com
142.250.96.90 translate.googleapis.com
142.250.100.90 translate.googleapis.com
142.250.110.90 translate.googleapis.com
172.217.214.90 translate.googleapis.com
172.217.222.90 translate.googleapis.com
142.250.31.90 translate.googleapis.com
142.250.126.90 translate.googleapis.com
142.250.10.90 translate.googleapis.com
172.217.195.90 translate.googleapis.com
172.253.115.90 translate.googleapis.com
142.251.5.90 translate.googleapis.com
142.250.136.90 translate.googleapis.com
142.250.12.90 translate.googleapis.com
142.250.101.90 translate.googleapis.com
172.217.192.90 translate.googleapis.com
142.250.0.90 translate.googleapis.com
142.250.107.90 translate.googleapis.com
172.217.204.90 translate.googleapis.com
142.250.28.90 translate.googleapis.com
142.250.125.90 translate.googleapis.com
172.253.124.90 translate.googleapis.com
142.250.8.90 translate.googleapis.com
142.250.128.90 translate.googleapis.com
142.250.112.90 translate.googleapis.com
142.250.27.90 translate.googleapis.com
142.250.105.90 translate.googleapis.com
172.253.126.90 translate.googleapis.com
172.253.123.90 translate.googleapis.com
172.253.122.90 translate.googleapis.com
172.253.62.90 translate.googleapis.com
142.250.98.90 translate.googleapis.com
142.250.185.238 translate.googleapis.com
142.251.116.101 translate.googleapis.com
216.58.214.14 translate.googleapis.com
142.250.189.206 translate.googleapis.com
216.58.209.174 translate.googleapis.com
142.250.203.142 translate.googleapis.com
142.250.218.14 translate.googleapis.com
142.251.10.138 translate.googleapis.com
142.251.40.174 translate.googleapis.com
142.250.185.174 translate.googleapis.com
172.217.16.46 translate.googleapis.com
172.217.0.46 translate.googleapis.com
172.217.31.142 translate.googleapis.com
216.58.220.142 translate.googleapis.com
172.217.13.142 translate.googleapis.com
172.253.113.90 translate.googleapis.com

网络上其他有关的资料和用户反馈:

谷歌翻译和网页全文翻译功能出现“远程服务器响应超时”或“错误码 404/400”等问题的解决方案
谷歌翻译出现了“远程服务器没有响应”问题

posted @ 2022-12-13 19:36  晴云孤魂  阅读(4)  评论(0编辑  收藏  举报