|
本帖最后由 icon 于 2024-3-17 00:57 编辑
昨天已经有大佬发过类似的了,不过要安装环境什么的,看见npm什么的我就蛋疼。
我这提供个go代码吧,今天现写的,也没试过,不过我相信应该没问题,要真有问题自己改改吧。
编译成linux/windows下的执行文件就好了。
原理就是整点连续抢10次。要是抢不到,我觉得也没人能抢到了。
**根据MJJ的反应,阿里今天延迟放货了,所以,这个程序就不能正常工作了,因为它的原理是在整点后准时去抢10次,考虑网络和机器速度,也就是1-2秒的样子。
由于有SDK频率限制,所以,现在修改成抢50次,每6秒抢一次,这样平均是3秒的时间,毕竟不是抢茅台,应该也够了。
[ol]/*https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair 获得主帐号的AccessKey ID AccessKey Secret确保有不少于24块的余额*/package mainimport ( "fmt" "os" "time" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" swas_open20200601 "github.com/alibabacloud-go/swas-open-20200601/client" "github.com/alibabacloud-go/tea/tea")func CreateClient(Key, Secret string) (_result *swas_open20200601.Client, _err error) { config := &openapi.Config{ AccessKeyId: tea.String(Key), AccessKeySecret: tea.String(Secret), } config.Endpoint = tea.String("swas.cn-hongkong.aliyuncs.com") _result = &swas_open20200601.Client{} _result, _err = swas_open20200601.NewClient(config) return _result, _err}func SDKCreate(Key, Secret string) error { client, err := CreateClient(Key, Secret) if err != nil { return err } request := &swas_open20200601.CreateInstancesRequest{ RegionId: tea.String("cn-hongkong"), //香港 ImageId: tea.String("8b798eb927684a08b26bb95da94f5812"), //debian11 PlanId: tea.String("swas.s2.c2m1s40b30t1.un"), //轻量24 Period: tea.Int32(1), } _, err = client.CreateInstances(request) if err != nil { return err } return nil}func main() { location, err := time.LoadLocation("Asia/Shanghai") if err != nil { fmt.Println("Error loading location:", err) return } args := os.Args if len(args) \n", args[0]) return } NowHour := time.Now().In(location).Hour() if NowHour != 0 { //如果是0点,立即开始,否则等到0点 fmt.Println("Waiting for 00:00:00 to start...") now := time.Now().In(location) tomorrowMidnight := now.Truncate(24 * time.Hour).Add(24 * time.Hour) time.Sleep(time.Until(tomorrowMidnight)) } //因为阿里可能不整点放货,所以,这里不再连续抢了,因为SDK的限制是10次/分钟 //现在改为每分钟抢10次左右,一直抢5分钟。 也就是6秒左右抢一次。按照中位数,3秒,应该还是希望很大。 for i := 1; i 复制代码
|
|