简单魔改glider使其支持base64格式

/ 默认分类 / 0 条评论 / 2514 浏览

本站的所有程序和文章,仅限用于学习和研究目的;不得用于商业或者非法用途,否则,一切后果请用户自负!!

前言

glider是个很香的东西,支持把各种梯子协议聚合起来变成一个随机代理池。这玩意目前唯一的遗憾是对格式有要求,而机场提供的都是base64编码的,那我来魔改一波。

机场订阅解析

这玩意最开始是看@zgao师傅弄的,不过当时他并没有说base64他是怎么转换的。既然如此那就只能靠自己了。

首先,把自己买的订阅,简单的转换一下。

curl -s https://sub.sssss.com | base64 -d | sed 's/^/forward=&/g'

在每个协议前加上forward=

图片1

随便拿一个出来,可以看到解开就是一串json。这里注意有的只有addr,没有host的。

图片2

转换之后,直接添加到配置文件即可。

魔改代码

那么接下来的思路就是,解码->提取json->生成特定格式。下面就直接贴代码了。至于为什么要加在这里,自己去研究把,很简单的。
这里主要是抛砖迎玉,别的协议也可以这操作。 图片3

	ss := s[8:]
	jsonStr, err := base64.StdEncoding.DecodeString(ss)
	fmt.Println(string(jsonStr))
	if err != nil {
		log.F("base64 decode err: %s", err)
		return nil, err
	}
	var data vmJson

	err = json.Unmarshal(jsonStr, &data)
	if err != nil {
		log.F("json unmarshal err: %s", err)
	}

	if data.Host != "" {
		s = fmt.Sprintf("vmess://%s@%s:%s", data.ID, data.Host, data.Port)
	} else {
		s = fmt.Sprintf("vmess://%s@%s:%s", data.ID, data.Add, data.Port)
	}

效果

图片

本文最后编辑时间为: 2022-12-31

如本文对你有帮助,点击广告支持一下吧,创造不易。

safe6