admin
2022-04-16 04f09e52ffd4681bdfd85e51acd3da0d1280c3d3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.yeshi.buwan.job.domain;
 
import com.aliyun.alidns20150109.models.DescribeSubDomainRecordsResponseBody;
import com.tencentcloudapi.clb.v20180317.models.LoadBalancer;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.yeshi.buwan.domain.live.TVLiveChannel;
import com.yeshi.buwan.domain.live.TVLiveChannelResourceMap;
import com.yeshi.buwan.domain.live.TVLiveProgramResource;
import com.yeshi.buwan.domain.live.TVLiveResource;
import com.yeshi.buwan.live.migu.MiGuLiveListInfo;
import com.yeshi.buwan.live.migu.MiguLiveApiUtil;
import com.yeshi.buwan.service.inter.live.MiGuLiveService;
import com.yeshi.buwan.service.inter.live.TVLiveChannelResourceService;
import com.yeshi.buwan.service.inter.live.TVLiveChannelService;
import com.yeshi.buwan.service.inter.live.TVLiveProgramResourceService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.factory.live.TVLiveChannelFactory;
import com.yeshi.buwan.util.tvlive.DianShiMaoUtil;
import com.yeshi.buwan.util.tvlive.TVSOUUtil;
import net.sf.json.JSONArray;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
 
//10409568
@Component
public class DDOSJob {
 
    //切换被腾讯云封堵的IP
    @XxlJob("ddos-buwan-server-change")
    public ReturnT<String> buwanServerChange(String params) throws Exception {
        LoadBalancer[] balances = TencentCloudCLBUtil.getCLBList("布丸-备用");
        if (balances == null || balances.length == 0) {
            throw new Exception("腾讯云负载均衡未查询到");
        }
 
        List<String> blockIPS = new ArrayList<>();
        List<String> normalIPS = new ArrayList<>();
        for (LoadBalancer b : balances) {
            if (b.getIsBlock()) {
                blockIPS.add(b.getLoadBalancerVips()[0].trim());
            } else {
                normalIPS.add(b.getLoadBalancerVips()[0].trim());
            }
        }
 
        //无封堵
        if (blockIPS.size() == 0) {
            return ReturnT.SUCCESS;
        }
 
        //获取阿里云解析的域名
        DescribeSubDomainRecordsResponseBody.DescribeSubDomainRecordsResponseBodyDomainRecordsRecord record = AliyunDomainParseUtil.getIP("api.ysdq.yeshitv.com");
 
        String ip = record.getValue().trim();
        if (!blockIPS.contains(ip)) {
            //如果没有解析封堵的IP就返回
            return ReturnT.SUCCESS;
        }
 
        //更换正常的IP
        if (normalIPS.size() == 0) {
            throw new Exception("腾讯云负载均衡IP已全部被封堵,请增加IP");
        }
        AliyunDomainParseUtil.setIP(record, normalIPS.get(normalIPS.size() - 1));
        return ReturnT.SUCCESS;
    }
 
//    public static void main(String[] args){
//        try {
//            new DDOSJob().buwanServerChange("");
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
 
 
}