REM:
1. kafka发送消息
This commit is contained in:
chenlinghy 2021-09-07 10:14:07 +08:00
parent 81e65f25e9
commit 5af36c1ac3
8 changed files with 660 additions and 279 deletions

View File

@ -53,6 +53,11 @@ kafka.producer.linger=1
kafka.producer.buffer.memory=33554432 kafka.producer.buffer.memory=33554432
kafka.producer.servers=172.21.44.189:9092,172.21.44.9:9092,172.21.44.244:9092,172.21.44.236:9092,172.21.44.80:9092 kafka.producer.servers=172.21.44.189:9092,172.21.44.9:9092,172.21.44.244:9092,172.21.44.236:9092,172.21.44.80:9092
kafka.dispose.topic=ddos-vip-customer-ck kafka.dispose.topic=ddos-vip-customer-ck
kafka.consumer.group-id = testGroup
kafka.consumer.auto-offset-reset = earliest
kafka.consumer.enable-auto-commit = true
kafka.consumer.auto-commit-interval = 100
kafka.consumer.max-poll-records =5
#信任主机配置 #信任主机配置
# 白名单开关 # 白名单开关

View File

@ -89,7 +89,6 @@
<artifactId>spring-kafka</artifactId> <artifactId>spring-kafka</artifactId>
<version>2.7.2</version> <version>2.7.2</version>
</dependency> </dependency>
<!--mysql --> <!--mysql -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>

View File

@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
@ -16,7 +17,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
* *
* @author <huangxin@cmhi.chinamoblie.com> * @author <huangxin@cmhi.chinamoblie.com>
*/ */
@SpringBootApplication @SpringBootApplication(exclude = {KafkaAutoConfiguration.class})
@EnableAsync @EnableAsync
@EnableScheduling @EnableScheduling
@EnableAspectJAutoProxy @EnableAspectJAutoProxy

View File

@ -0,0 +1,108 @@
package com.dispose.controller;
import com.dispose.common.ErrorCode;
import com.dispose.config.KafkaConfiguration;
import com.dispose.pojo.dto.protocol.base.BaseRespStatus;
import com.dispose.pojo.dto.protocol.base.ProtocolReqDTO;
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.dto.protocol.kafka.AlarmInfo;
import com.dispose.pojo.dto.protocol.kafka.AlarmInfoReq;
import com.dispose.security.annotation.Decryption;
import com.dispose.security.annotation.Encryption;
import com.dispose.validation.group.ValidGroups;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.support.SendResult;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.util.concurrent.ListenableFuture;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.Objects;
/**
* The type Auth controller.
*
* @author <huangxin@cmhi.chinamoblie.com>
*/
@Controller
@RequestMapping(value = "/kafka")
@Slf4j
@Api(value = "处置平台发送消息接口", tags = "处置平台发送消息接口")
@Component
@Validated
@Encryption
@Decryption
public class kafkaController {
/**
* The Object mapper.
*/
@Resource
private ObjectMapper objectMapper;
/**
* The Kafka configuration.
*/
// final private KafkaConfiguration kafkaConfiguration =
// SpringBootBeanUtil.getBean(com.dispose.config.KafkaConfiguration.class);
@Resource
private KafkaConfiguration kafkaConfiguration;
/**
* Dispatch command sent to kafka.
*
* @param mr the mr
* @return the protocol resp dto
*/
@PostMapping("/dispatchCommand")
@ResponseBody
@ApiOperation("发送消息")
public ProtocolRespDTO<BaseRespStatus> dispatchCommand(
@Validated(ValidGroups.ProtocolCommonValid.class)
@RequestBody ProtocolReqDTO<AlarmInfoReq> mr) throws JsonProcessingException {
//获取入参信息进行所需数据格式拼接
log.info("alarm message information :{}", mr.getMsgContent().getAlarmInfo());
AlarmInfo alarmInfo = objectMapper.readValue(mr.getMsgContent().getAlarmInfo(), new TypeReference<AlarmInfo>() {
});
//推动数据格式到kafka
log.info("send alarm message :{}", alarmInfo.toString());
String sendMessage = mr.getMsgContent().getAlarmInfo();
ListenableFuture<SendResult<String, String>> sendResult = kafkaConfiguration
.kafkaTemplate()
.sendDefault(0, System.currentTimeMillis(), "dispose", sendMessage);
sendResult.addCallback(v -> log.info("Kafka send {} to {} at {}", sendMessage,
Objects.requireNonNull(v)
.getRecordMetadata()
.topic(), v.getRecordMetadata().partition()),
ex -> log.error("Kafka send error: {}", ex.getMessage()));
BaseRespStatus rspInfo = new BaseRespStatus();
rspInfo.setStatus(ErrorCode.ERR_OK.getCode());
rspInfo.setMessage(new String[]{ErrorCode.ERR_OK.getMsg()});
return ProtocolRespDTO.result(ErrorCode.ERR_OK, rspInfo);
}
// @KafkaListener(topics = {"ddos-vip-customer-ck"})
// public void kafkaListen(ConsumerRecord<String, String> consumerRecord) {
// //判断消息是否为null
// Optional<String> kafkaMessage = Optional.ofNullable(consumerRecord.value());
// log.info(">>>>>>>>>>> record = " + kafkaMessage);
// if (kafkaMessage.isPresent()) {
// String consumerMsg = kafkaMessage.get();
// log.info("消费消息:" + consumerMsg);
// }
// }
}

View File

@ -0,0 +1,84 @@
package com.dispose.pojo.dto.protocol.kafka;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode()
@Data
@Builder
@AllArgsConstructor
@JsonPropertyOrder({"alarmId", "dstIp", "attackType", "bpspps", "dstProvince", "dstCity", "srcIpLs", "startTime",
"endTime", "disposeType", "disposeTime", "maxBps", "maxPps"})
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AlarmInfo {
/**
* 告警id.
*/
private String alarmId;
/**
* 被攻击ip.
*/
private String dstIp;
/**
* 攻击类型(类似HTTP Flood字符串形式).
*/
private String attackType;
/**
* 被攻击ip.
*/
private String bpspps;
/**
* 目的ip省份.
*/
private String dstProvince;
/**
* 目的ip市.
*/
private String dstCity;
/**
* 告警源ip列表,没有就给empty的list.
*/
private List<String> srcIpLs;
/**
* 告警开始时间.
*/
private String startTime;
/**
* 告警结束时间.
*/
private String endTime;
/**
* 处置类型(1:清洗,2:黑洞,3:高防),默认清洗.
*/
private Integer disposeType;
/**
* 处置时长.
*/
private Integer disposeTime;
/**
* 流量峰值(单位:bps).
*/
private String maxBps;
/**
* 包数峰值(单位:pps).
*/
private String maxPps;
}

View File

@ -0,0 +1,29 @@
package com.dispose.pojo.dto.protocol.kafka;
import com.dispose.validation.group.ValidGroups;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* The type Login req.
*
* @author <huangxin@cmhi.chinamoblie.com>
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AlarmInfoReq {
/**
* 告警信息.
*/
@NotBlank(message = "alarmInfo 告警信息不能为空", groups = ValidGroups.ProtocolCommonValid.class)
private String alarmInfo;
}

View File

@ -0,0 +1,126 @@
package com.dispose.test.dev.controller;
import cn.hutool.json.JSONObject;
import com.dispose.common.ConstValue;
import com.dispose.common.ErrorCode;
import com.dispose.common.ProtoCryptoType;
import com.dispose.pojo.dto.protocol.base.BaseRespStatus;
import com.dispose.pojo.dto.protocol.base.ProtocolReqDTO;
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.dto.protocol.kafka.AlarmInfoReq;
import com.dispose.test.dev.Global.InitTestEnvironment;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import jodd.net.HttpStatus;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
/**
* The type Auth controller test.
*
* @author <huangxin@cmhi.chinamoblie.com>
*/
@AutoConfigureMockMvc
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Transactional
@Rollback
@Slf4j
public class KafkaControllerTest extends InitTestEnvironment {
/**
* The Mock mvc.
*/
@Resource
private MockMvc mockMvc;
/**
* The Object mapper.
*/
@Resource
private ObjectMapper objectMapper;
/**
* A 1 login.
*
* @throws Exception the exception
*/
@Test
public void a1_dispatchCommand() throws Exception {
JSONObject disposeParam = new JSONObject();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
disposeParam.set("alarmId", "1");
disposeParam.set("dstIp", "192.168.1.1");
disposeParam.set("attackType", "1");
disposeParam.set("bpspps", "bps");
disposeParam.set("dstProvince", "ZHEJIANG");
disposeParam.set("dstCity", "HANGZHOU");
disposeParam.set("startTime", sdf.format(new Date()));
// 1清洗2流控3黑洞
disposeParam.set("disposeType", 1);
disposeParam.set("disposeTime", 30);
disposeParam.set("endTime", new Date());
List<String> srcIp = new ArrayList<>();
srcIp.add("192.168.10.1");
srcIp.add("192.168.10.2");
disposeParam.set("srcIpLs", srcIp);
disposeParam.set("maxBps", "20bps");
disposeParam.set("maxPps", "20pps");
String jsonAlarmInfo = disposeParam.toString();
log.info("============ jsonAlarmInfo :{}", jsonAlarmInfo);
AlarmInfoReq alarmInfoReq = AlarmInfoReq.builder()
.alarmInfo(jsonAlarmInfo).build();
ProtocolReqDTO<AlarmInfoReq> reqInfo = new ProtocolReqDTO<>();
reqInfo.setVer(ConstValue.Protocol.VERSION);
reqInfo.setCryptoType(ProtoCryptoType.CRYPTO_NONE.getCode());
reqInfo.setTimeStamp(System.currentTimeMillis());
reqInfo.setMsgContent(alarmInfoReq);
String ret = mockMvc.perform(MockMvcRequestBuilders
.post("/kafka/dispatchCommand")
.contentType(MediaType.APPLICATION_JSON)
.header("Authorization", ConstValue.STRING_HTTP_AUTH_HEAD + getLoginToken())
.content(objectMapper.writeValueAsString(reqInfo)))
.andDo(print()).andExpect(status().isOk())
.andExpect(jsonPath("$.code").value(HttpStatus.ok().status()))
.andReturn()
.getResponse()
.getContentAsString();
ProtocolRespDTO<BaseRespStatus> rspInfo = objectMapper.readValue(ret,
new TypeReference<ProtocolRespDTO<BaseRespStatus>>() {
});
verifyRespProtocol(rspInfo);
log.debug(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(rspInfo));
Assert.assertEquals(ErrorCode.ERR_OK.getCode(), (long) rspInfo.getMsgContent().getStatus());
}
}

View File

@ -1,5 +1,6 @@
package com.dispose.test.dev.debug; package com.dispose.test.dev.debug;
import cn.hutool.json.JSONObject;
import com.dispose.common.ConstValue; import com.dispose.common.ConstValue;
import com.dispose.common.DDoSAttackType; import com.dispose.common.DDoSAttackType;
import com.dispose.common.DisposeConfigValue; import com.dispose.common.DisposeConfigValue;
@ -26,8 +27,10 @@ import java.lang.reflect.Modifier;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException; import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -141,29 +144,29 @@ public class demo {
@Test @Test
public void classEnumValue() throws JsonProcessingException { public void classEnumValue() throws JsonProcessingException {
DisposeDevice dev = DisposeDevice.builder() DisposeDevice dev = DisposeDevice.builder()
.ipAddr("10.88.77.15") .ipAddr("10.88.77.15")
.ipPort("") .ipPort("")
.deviceType(DisposeDeviceType.DPTECH_UMC) .deviceType(DisposeDeviceType.DPTECH_UMC)
.areaCode(0) .areaCode(0)
.deviceName("中移杭研实验室迪普清洗设备") .deviceName("中移杭研实验室迪普清洗设备")
.manufacturer("DPTech") .manufacturer("DPTech")
.model("UMC") .model("UMC")
.version("5.7.13") .version("5.7.13")
.userName("admin") .userName("admin")
.password("UMCAdministrator") .password("UMCAdministrator")
.urlPath("UMC/service/AbnormalFlowCleaningService") .urlPath("UMC/service/AbnormalFlowCleaningService")
.urlType(HttpType.HTTP) .urlType(HttpType.HTTP)
.readme("实验室测试设备") .readme("实验室测试设备")
.status(ObjectStatus.NORMAL) .status(ObjectStatus.NORMAL)
.build(); .build();
DisposeDevice dev2 = DisposeDevice.builder() DisposeDevice dev2 = DisposeDevice.builder()
.version("5.7.135") .version("5.7.135")
.build(); .build();
log.debug(new ObjectMapper() log.debug(new ObjectMapper()
.writerWithDefaultPrettyPrinter() .writerWithDefaultPrettyPrinter()
.writeValueAsString(upgradeDisposeDeviceProperties(dev, dev2))); .writeValueAsString(upgradeDisposeDeviceProperties(dev, dev2)));
} }
/** /**
@ -204,250 +207,250 @@ public class demo {
@Test @Test
public void ipRang() { public void ipRang() {
String[] src = new String[]{"112.13.86.0-112.13.86.255", "112.13.82.0-112.13.82.255", "117.148.175.0-117.148" + String[] src = new String[]{"112.13.86.0-112.13.86.255", "112.13.82.0-112.13.82.255", "117.148.175.0-117.148" +
".175.255", "117.148.174.0-117.148.174.255", "117.148.172.0-117.148.172.255", "117.148.142.0-117.148.142" + ".175.255", "117.148.174.0-117.148.174.255", "117.148.172.0-117.148.172.255", "117.148.142.0-117.148.142" +
".255", "117.148.141.0-117.148.141.255", "117.148.140.0-117.148.140.255", "117.148.131.0-117.148.131.255" ".255", "117.148.141.0-117.148.141.255", "117.148.140.0-117.148.140.255", "117.148.131.0-117.148.131.255"
, "117.148.130.0-117.148.130.255", "117.148.129.0-117.148.129.255", "117.148.128.0-117.148.128.255", "112" + , "117.148.130.0-117.148.130.255", "117.148.129.0-117.148.129.255", "117.148.128.0-117.148.128.255", "112" +
".17.42.0-112.17.42.255", "112.17.41.0-112.17.41.255", "112.17.40.0-112.17.40.255", "112.17.29.0-112.17" + ".17.42.0-112.17.42.255", "112.17.41.0-112.17.41.255", "112.17.40.0-112.17.40.255", "112.17.29.0-112.17" +
".29.255", "112.17.28.0-112.17.28.255", "112.17.27.0-112.17.27.255", "112.17.14.0-112.17.14.255", "112.13" + ".29.255", "112.17.28.0-112.17.28.255", "112.17.27.0-112.17.27.255", "112.17.14.0-112.17.14.255", "112.13" +
".218.0-112.13.218.255", "112.13.217.0-112.13.217.255", "112.13.216.0-112.13.216.255", "112.13.210.0-112" + ".218.0-112.13.218.255", "112.13.217.0-112.13.217.255", "112.13.216.0-112.13.216.255", "112.13.210.0-112" +
".13.210.255", "112.13.209.0-112.13.209.255", "112.13.208.0-112.13.208.255", "112.13.170.171-112.13.170" + ".13.210.255", "112.13.209.0-112.13.209.255", "112.13.208.0-112.13.208.255", "112.13.170.171-112.13.170" +
".255", "112.13.111.0-112.13.111.255", "112.13.108.0-112.13.108.255", "112.13.107.0-112.13.107.255", "112" + ".255", "112.13.111.0-112.13.111.255", "112.13.108.0-112.13.108.255", "112.13.107.0-112.13.107.255", "112" +
".13.106.0-112.13.106.255", "112.13.105.0-112.13.105.255", "112.13.81.0-112.13.81.255", "112.13.87.0-112" + ".13.106.0-112.13.106.255", "112.13.105.0-112.13.105.255", "112.13.81.0-112.13.81.255", "112.13.87.0-112" +
".13.87.255", "111.2.176.0-111.2.176.7", "112.13.80.0-112.13.80.255", "112.13.83.0-112.13.83.255", "112" + ".13.87.255", "111.2.176.0-111.2.176.7", "112.13.80.0-112.13.80.255", "112.13.83.0-112.13.83.255", "112" +
".13.84.0-112.13.84.255", "112.13.85.0-112.13.85.255", "112.13.170.0-112.13.170.169", "111.2.176.9-111.2" + ".13.84.0-112.13.84.255", "112.13.85.0-112.13.85.255", "112.13.170.0-112.13.170.169", "111.2.176.9-111.2" +
".179.255", "117.147.196.0-117.147.199.255", "183.247.240.0-183.247.255.255", "117.148.170.0-117.148.170" + ".179.255", "117.147.196.0-117.147.199.255", "183.247.240.0-183.247.255.255", "117.148.170.0-117.148.170" +
".255", "117.148.169.0-117.148.169.255", "112.17.43.0-112.17.43.255", "112.17.15.0-112.17.15.255", "112" + ".255", "117.148.169.0-117.148.169.255", "112.17.43.0-112.17.43.255", "112.17.15.0-112.17.15.255", "112" +
".13.103.0-112.13.103.255", "112.13.97.0-112.13.97.255", "112.13.112.0-112.13.127.255", "218.205.90.0-218" + ".13.103.0-112.13.103.255", "112.13.97.0-112.13.97.255", "112.13.112.0-112.13.127.255", "218.205.90.0-218" +
".205.91.255", "218.205.88.0-218.205.88.255", "112.13.215.0-112.13.215.255", "112.13.214.0-112.13.214" + ".205.91.255", "218.205.88.0-218.205.88.255", "112.13.215.0-112.13.215.255", "112.13.214.0-112.13.214" +
".255", "112.13.212.0-112.13.212.255", "112.13.211.0-112.13.211.255", "112.13.75.0-112.13.75.63", "112.13" + ".255", "112.13.212.0-112.13.212.255", "112.13.211.0-112.13.211.255", "112.13.75.0-112.13.75.63", "112.13" +
".67.0-112.13.67.255", "112.13.66.0-112.13.66.255", "117.148.177.0-117.148.177.255", "117.148.176.0-117" + ".67.0-112.13.67.255", "112.13.66.0-112.13.66.255", "117.148.177.0-117.148.177.255", "117.148.176.0-117" +
".148.176.255", "112.13.166.0-112.13.166.255", "112.17.252.0-112.17.252.255", "112.17.251.0-112.17.251" + ".148.176.255", "112.13.166.0-112.13.166.255", "112.17.252.0-112.17.252.255", "112.17.251.0-112.17.251" +
".255", "112.17.250.0-112.17.250.255", "117.148.167.0-117.148.167.255", "112.13.174.0-112.13.174.255", ".255", "112.17.250.0-112.17.250.255", "117.148.167.0-117.148.167.255", "112.13.174.0-112.13.174.255",
"112.13.172.0-112.13.172.255", "211.138.129.128-211.138.129.255", "112.17.0.0-112.17.7.255", "218.205.80" + "112.13.172.0-112.13.172.255", "211.138.129.128-211.138.129.255", "112.17.0.0-112.17.7.255", "218.205.80" +
".0-218.205.86.255", "218.205.79.0-218.205.79.255", "218.205.78.0-218.205.78.255", "218.205.77.0-218.205" + ".0-218.205.86.255", "218.205.79.0-218.205.79.255", "218.205.78.0-218.205.78.255", "218.205.77.0-218.205" +
".77.255", "218.205.76.0-218.205.76.255", "218.205.74.0-218.205.74.255", "218.205.73.0-218.205.73.255", ".77.255", "218.205.76.0-218.205.76.255", "218.205.74.0-218.205.74.255", "218.205.73.0-218.205.73.255",
"218.205.72.0-218.205.72.255", "211.138.126.128-211.138.126.255", "211.138.126.112-211.138.126.127", "211" + "218.205.72.0-218.205.72.255", "211.138.126.128-211.138.126.255", "211.138.126.112-211.138.126.127", "211" +
".138.126.104-211.138.126.111", "211.138.126.64-211.138.126.95", "211.138.124.0-211.138.124.255", "211" + ".138.126.104-211.138.126.111", "211.138.126.64-211.138.126.95", "211.138.124.0-211.138.124.255", "211" +
".138.120.0-211.138.123.255", "120.193.8.0-120.193.11.255", "111.1.52.0-111.1.55.255", "111.1.44.0-111.1" + ".138.120.0-211.138.123.255", "120.193.8.0-120.193.11.255", "111.1.52.0-111.1.55.255", "111.1.44.0-111.1" +
".47.255", "111.1.36.0-111.1.39.255", "111.1.34.0-111.1.35.255", "111.1.33.0-111.1.33.255", "111.1.16" + ".47.255", "111.1.36.0-111.1.39.255", "111.1.34.0-111.1.35.255", "111.1.33.0-111.1.33.255", "111.1.16" +
".0-111.1.23.255", "111.0.37.0-111.0.37.255", "111.0.36.0-111.0.36.255", "111.0.35.0-111.0.35.255", "111" + ".0-111.1.23.255", "111.0.37.0-111.0.37.255", "111.0.36.0-111.0.36.255", "111.0.35.0-111.0.35.255", "111" +
".0.34.0-111.0.34.255", "111.0.33.0-111.0.33.255", "111.0.32.0-111.0.32.255", "111.0.31.0-111.0.31.255", ".0.34.0-111.0.34.255", "111.0.33.0-111.0.33.255", "111.0.32.0-111.0.32.255", "111.0.31.0-111.0.31.255",
"111.0.30.0-111.0.30.255", "112.17.48.0-112.17.63.255", "111.3.80.0-111.3.95.255", "117.149.154.0-117.149" + "111.0.30.0-111.0.30.255", "112.17.48.0-112.17.63.255", "111.3.80.0-111.3.95.255", "117.149.154.0-117.149" +
".154.255", "117.147.184.0-117.147.184.255", "112.17.30.0-112.17.30.255", "111.3.76.0-111.3.76.255", "111" + ".154.255", "117.147.184.0-117.147.184.255", "112.17.30.0-112.17.30.255", "111.3.76.0-111.3.76.255", "111" +
".0.29.0-111.0.29.255", "111.0.28.0-111.0.28.255", "111.0.27.0-111.0.27.255", "111.0.26.0-111.0.26.255", ".0.29.0-111.0.29.255", "111.0.28.0-111.0.28.255", "111.0.27.0-111.0.27.255", "111.0.26.0-111.0.26.255",
"111.0.25.0-111.0.25.255", "111.0.24.0-111.0.24.255", "111.0.23.0-111.0.23.255", "111.0.22.0-111.0.22" + "111.0.25.0-111.0.25.255", "111.0.24.0-111.0.24.255", "111.0.23.0-111.0.23.255", "111.0.22.0-111.0.22" +
".255", "218.205.75.0-218.205.75.255", "211.138.126.32-211.138.126.39", "117.148.166.0-117.148.166.255", ".255", "218.205.75.0-218.205.75.255", "211.138.126.32-211.138.126.39", "117.148.166.0-117.148.166.255",
"117.148.165.0-117.148.165.255", "117.148.164.0-117.148.164.255", "117.148.163.0-117.148.163.255", "117" + "117.148.165.0-117.148.165.255", "117.148.164.0-117.148.164.255", "117.148.163.0-117.148.163.255", "117" +
".148.162.0-117.148.162.255", "117.148.161.0-117.148.161.255", "117.148.160.0-117.148.160.255", "112.13" + ".148.162.0-117.148.162.255", "117.148.161.0-117.148.161.255", "117.148.160.0-117.148.160.255", "112.13" +
".223.0-112.13.223.255", "112.13.222.0-112.13.222.255", "112.13.221.0-112.13.221.255", "112.13.220.0-112" + ".223.0-112.13.223.255", "112.13.222.0-112.13.222.255", "112.13.221.0-112.13.221.255", "112.13.220.0-112" +
".13.220.255", "112.13.213.0-112.13.213.255", "112.13.175.0-112.13.175.255", "112.13.173.0-112.13.173" + ".13.220.255", "112.13.213.0-112.13.213.255", "112.13.175.0-112.13.175.255", "112.13.173.0-112.13.173" +
".255", "112.13.79.0-112.13.79.255", "112.13.78.0-112.13.78.255", "112.13.77.0-112.13.77.255", "112.13.76" + ".255", "112.13.79.0-112.13.79.255", "112.13.78.0-112.13.78.255", "112.13.77.0-112.13.77.255", "112.13.76" +
".0-112.13.76.255", "112.13.74.0-112.13.74.255", "112.13.73.0-112.13.73.255", "112.13.72.0-112.13.72.255" ".0-112.13.76.255", "112.13.74.0-112.13.74.255", "112.13.73.0-112.13.73.255", "112.13.72.0-112.13.72.255"
, "112.13.71.0-112.13.71.255", "112.13.70.0-112.13.70.255", "112.13.69.0-112.13.69.255", "112.13.68.0-112" + , "112.13.71.0-112.13.71.255", "112.13.70.0-112.13.70.255", "112.13.69.0-112.13.69.255", "112.13.68.0-112" +
".13.68.255", "112.13.65.0-112.13.65.255", "112.13.64.0-112.13.64.255", "111.2.184.0-111.2.184.255", "111" + ".13.68.255", "112.13.65.0-112.13.65.255", "112.13.64.0-112.13.64.255", "111.2.184.0-111.2.184.255", "111" +
".1.32.0-111.1.32.255", "111.1.41.36-111.1.41.39", "111.1.41.64-111.1.41.79", "120.199.68.38-120.199.68" + ".1.32.0-111.1.32.255", "111.1.41.36-111.1.41.39", "111.1.41.64-111.1.41.79", "120.199.68.38-120.199.68" +
".38", "111.1.41.34-111.1.41.34", "111.1.41.30-111.1.41.30", "111.1.41.22-111.1.41.22", "120.199.68" + ".38", "111.1.41.34-111.1.41.34", "111.1.41.30-111.1.41.30", "111.1.41.22-111.1.41.22", "120.199.68" +
".46-120.199.68.46", "120.199.68.115-120.199.68.115", "120.199.68.114-120.199.68.114", "111.1.41.252-111" + ".46-120.199.68.46", "120.199.68.115-120.199.68.115", "120.199.68.114-120.199.68.114", "111.1.41.252-111" +
".1.41.252", "111.1.41.184-111.1.41.191", "120.199.68.96-120.199.68.111", "120.199.68.93-120.199.68.93", ".1.41.252", "111.1.41.184-111.1.41.191", "120.199.68.96-120.199.68.111", "120.199.68.93-120.199.68.93",
"120.199.68.92-120.199.68.92", "120.199.68.91-120.199.68.91", "120.199.68.90-120.199.68.90", "111.1.41" + "120.199.68.92-120.199.68.92", "120.199.68.91-120.199.68.91", "120.199.68.90-120.199.68.90", "111.1.41" +
".26-111.1.41.26", "120.199.82.6-120.199.82.6", "111.1.41.0-111.1.41.7", "111.1.41.118-111.1.41.118", ".26-111.1.41.26", "120.199.82.6-120.199.82.6", "111.1.41.0-111.1.41.7", "111.1.41.118-111.1.41.118",
"120.199.93.54-120.199.93.54", "111.1.41.29-111.1.41.29", "111.1.41.43-111.1.41.43", "111.1.41.42-111.1" + "120.199.93.54-120.199.93.54", "111.1.41.29-111.1.41.29", "111.1.41.43-111.1.41.43", "111.1.41.42-111.1" +
".41.42", "120.199.80.32-120.199.80.47", "120.199.85.176-120.199.85.176", "120.199.85.184-120.199.85.191" ".41.42", "120.199.80.32-120.199.80.47", "120.199.85.176-120.199.85.176", "120.199.85.184-120.199.85.191"
, "120.199.85.183-120.199.85.183", "120.199.85.182-120.199.85.182", "120.199.85.181-120.199.85.181", "120" + , "120.199.85.183-120.199.85.183", "120.199.85.182-120.199.85.182", "120.199.85.181-120.199.85.181", "120" +
".199.85.180-120.199.85.180", "120.199.71.128-120.199.71.255", "120.199.85.160-120.199.85.175", "120.199" + ".199.85.180-120.199.85.180", "120.199.71.128-120.199.71.255", "120.199.85.160-120.199.85.175", "120.199" +
".68.122-120.199.68.122", "120.199.78.144-120.199.78.144", "120.199.90.0-120.199.90.255", "120.199.78" + ".68.122-120.199.68.122", "120.199.78.144-120.199.78.144", "120.199.90.0-120.199.90.255", "120.199.78" +
".145-120.199.78.145", "120.199.78.148-120.199.78.148", "120.199.78.147-120.199.78.147", "120.199.78" + ".145-120.199.78.145", "120.199.78.148-120.199.78.148", "120.199.78.147-120.199.78.147", "120.199.78" +
".151-120.199.78.151", "120.199.78.150-120.199.78.150", "120.199.78.149-120.199.78.149", "120.199.78" + ".151-120.199.78.151", "120.199.78.150-120.199.78.150", "120.199.78.149-120.199.78.149", "120.199.78" +
".146-120.199.78.146", "120.199.94.160-120.199.94.191", "120.199.69.0-120.199.69.255", "120.199.94.0-120" + ".146-120.199.78.146", "120.199.94.160-120.199.94.191", "120.199.69.0-120.199.69.255", "120.199.94.0-120" +
".199.94.127", "120.199.95.0-120.199.95.255", "120.199.79.0-120.199.79.127", "120.199.71.0-120.199.71" + ".199.94.127", "120.199.95.0-120.199.95.255", "120.199.79.0-120.199.79.127", "120.199.71.0-120.199.71" +
".127", "120.199.78.139-120.199.78.139", "120.199.78.138-120.199.78.138", "120.199.78.137-120.199.78.137" ".127", "120.199.78.139-120.199.78.139", "120.199.78.138-120.199.78.138", "120.199.78.137-120.199.78.137"
, "120.199.78.136-120.199.78.136", "120.199.78.135-120.199.78.135", "120.199.78.134-120.199.78.134", "120" + , "120.199.78.136-120.199.78.136", "120.199.78.135-120.199.78.135", "120.199.78.134-120.199.78.134", "120" +
".199.78.133-120.199.78.133", "120.199.78.132-120.199.78.132", "120.199.78.131-120.199.78.131", "120.199" + ".199.78.133-120.199.78.133", "120.199.78.132-120.199.78.132", "120.199.78.131-120.199.78.131", "120.199" +
".78.130-120.199.78.130", "120.199.78.141-120.199.78.141", "120.199.78.140-120.199.78.140", "111.1.42" + ".78.130-120.199.78.130", "120.199.78.141-120.199.78.141", "120.199.78.140-120.199.78.140", "111.1.42" +
".128-111.1.42.191", "120.199.92.64-120.199.92.127", "120.199.86.0-120.199.86.31", "120.199.85.64-120.199" + ".128-111.1.42.191", "120.199.92.64-120.199.92.127", "120.199.86.0-120.199.86.31", "120.199.85.64-120.199" +
".85.95", "120.199.86.192-120.199.86.255", "120.199.91.0-120.199.91.255", "120.199.92.0-120.199.92.63", ".85.95", "120.199.86.192-120.199.86.255", "120.199.91.0-120.199.91.255", "120.199.92.0-120.199.92.63",
"120.199.84.160-120.199.84.191", "120.199.84.128-120.199.84.159", "120.199.83.64-120.199.83.127", "120" + "120.199.84.160-120.199.84.191", "120.199.84.128-120.199.84.159", "120.199.83.64-120.199.83.127", "120" +
".199.70.0-120.199.70.255", "120.199.85.192-120.199.85.255", "120.199.80.192-120.199.80.255", "120.199.80" + ".199.70.0-120.199.70.255", "120.199.85.192-120.199.85.255", "120.199.80.192-120.199.80.255", "120.199.80" +
".64-120.199.80.127", "120.199.80.48-120.199.80.63", "120.199.85.0-120.199.85.63", "120.199.93.64-120.199" + ".64-120.199.80.127", "120.199.80.48-120.199.80.63", "120.199.85.0-120.199.85.63", "120.199.93.64-120.199" +
".93.127", "111.1.41.128-111.1.41.159", "112.17.33.80-112.17.33.83", "112.17.38.112-112.17.38.127", "183" + ".93.127", "111.1.41.128-111.1.41.159", "112.17.33.80-112.17.33.83", "112.17.38.112-112.17.38.127", "183" +
".247.184.0-183.247.184.63", "112.17.37.64-112.17.37.127", "112.17.37.128-112.17.37.255", "112.17.37" + ".247.184.0-183.247.184.63", "112.17.37.64-112.17.37.127", "112.17.37.128-112.17.37.255", "112.17.37" +
".16-112.17.37.31", "183.247.184.80-183.247.184.95", "183.247.184.96-183.247.184.127", "183.247.184" + ".16-112.17.37.31", "183.247.184.80-183.247.184.95", "183.247.184.96-183.247.184.127", "183.247.184" +
".64-183.247.184.79", "112.17.38.32-112.17.38.47", "112.17.33.0-112.17.33.7", "218.205.113.160-218.205" + ".64-183.247.184.79", "112.17.38.32-112.17.38.47", "112.17.33.0-112.17.33.7", "218.205.113.160-218.205" +
".113.175", "112.17.33.84-112.17.33.87", "112.17.32.128-112.17.32.143", "112.17.33.128-112.17.33.255", ".113.175", "112.17.33.84-112.17.33.87", "112.17.32.128-112.17.32.143", "112.17.33.128-112.17.33.255",
"112.17.38.128-112.17.38.255", "218.205.114.208-218.205.114.223", "112.17.32.32-112.17.32.63", "112.17.33" + "112.17.38.128-112.17.38.255", "218.205.114.208-218.205.114.223", "112.17.32.32-112.17.32.63", "112.17.33" +
".16-112.17.33.31", "112.17.38.0-112.17.38.15", "218.205.114.252-218.205.114.252", "218.205.113.190-218" + ".16-112.17.33.31", "112.17.38.0-112.17.38.15", "218.205.114.252-218.205.114.252", "218.205.113.190-218" +
".205.113.190", "218.205.113.189-218.205.113.189", "218.205.113.188-218.205.113.188", "218.205.113" + ".205.113.190", "218.205.113.189-218.205.113.189", "218.205.113.188-218.205.113.188", "218.205.113" +
".187-218.205.113.187", "218.205.113.186-218.205.113.186", "218.205.113.200-218.205.113.200", "218.205" + ".187-218.205.113.187", "218.205.113.186-218.205.113.186", "218.205.113.200-218.205.113.200", "218.205" +
".113.202-218.205.113.202", "112.17.33.8-112.17.33.11", "112.17.33.12-112.17.33.15", "218.205.113.222-218" + ".113.202-218.205.113.202", "112.17.33.8-112.17.33.11", "112.17.33.12-112.17.33.15", "218.205.113.222-218" +
".205.113.222", "218.205.113.251-218.205.113.251", "183.247.184.158-183.247.184.158", "112.17.37.8-112.17" + ".205.113.222", "218.205.113.251-218.205.113.251", "183.247.184.158-183.247.184.158", "112.17.37.8-112.17" +
".37.15", "183.247.184.143-183.247.184.143", "112.17.32.64-112.17.32.95", "112.17.32.104-112.17.32.111", ".37.15", "183.247.184.143-183.247.184.143", "112.17.32.64-112.17.32.95", "112.17.32.104-112.17.32.111",
"218.205.113.16-218.205.113.31", "112.17.33.96-112.17.33.111", "112.17.38.80-112.17.38.95", "112.17.33" + "218.205.113.16-218.205.113.31", "112.17.33.96-112.17.33.111", "112.17.38.80-112.17.38.95", "112.17.33" +
".88-112.17.33.95", "112.17.32.96-112.17.32.99", "112.17.33.32-112.17.33.63", "218.205.114.192-218.205" + ".88-112.17.33.95", "112.17.32.96-112.17.32.99", "112.17.33.32-112.17.33.63", "218.205.114.192-218.205" +
".114.207", "218.205.114.247-218.205.114.247", "183.247.184.192-183.247.184.255", "183.247.184.139-183" + ".114.207", "218.205.114.247-218.205.114.247", "183.247.184.192-183.247.184.255", "183.247.184.139-183" +
".247.184.139", "183.247.184.136-183.247.184.136", "218.205.113.8-218.205.113.15", "183.247.184.133-183" + ".247.184.139", "183.247.184.136-183.247.184.136", "218.205.113.8-218.205.113.15", "183.247.184.133-183" +
".247.184.133", "112.17.35.120-112.17.35.123", "112.17.36.0-112.17.36.127", "218.205.115.192-218.205.115" + ".247.184.133", "112.17.35.120-112.17.35.123", "112.17.36.0-112.17.36.127", "218.205.115.192-218.205.115" +
".255", "112.17.36.160-112.17.36.167", "112.17.36.128-112.17.36.159", "218.205.113.247-218.205.113.247", ".255", "112.17.36.160-112.17.36.167", "112.17.36.128-112.17.36.159", "218.205.113.247-218.205.113.247",
"218.205.113.254-218.205.113.254", "111.3.71.35-111.3.71.35", "111.3.71.7-111.3.71.7", "111.3.71.128-111" + "218.205.113.254-218.205.113.254", "111.3.71.35-111.3.71.35", "111.3.71.7-111.3.71.7", "111.3.71.128-111" +
".3.71.159", "111.3.71.36-111.3.71.36", "111.3.71.37-111.3.71.37", "111.3.71.38-111.3.71.38", "111.3.71" + ".3.71.159", "111.3.71.36-111.3.71.36", "111.3.71.37-111.3.71.37", "111.3.71.38-111.3.71.38", "111.3.71" +
".34-111.3.71.34", "112.15.32.0-112.15.32.255", "112.15.31.128-112.15.31.255", "112.15.29.0-112.15.29" + ".34-111.3.71.34", "112.15.32.0-112.15.32.255", "112.15.31.128-112.15.31.255", "112.15.29.0-112.15.29" +
".255", "112.15.28.0-112.15.28.255", "112.15.31.0-112.15.31.63", "112.15.30.0-112.15.30.255", "218.205" + ".255", "112.15.28.0-112.15.28.255", "112.15.31.0-112.15.31.63", "112.15.30.0-112.15.30.255", "218.205" +
".121.0-218.205.121.127", "218.205.120.0-218.205.120.255", "218.205.121.128-218.205.121.255", "218.205" + ".121.0-218.205.121.127", "218.205.120.0-218.205.120.255", "218.205.121.128-218.205.121.255", "218.205" +
".119.36-218.205.119.39", "218.205.123.65-218.205.123.65", "218.205.123.66-218.205.123.66", "218.205.123" + ".119.36-218.205.119.39", "218.205.123.65-218.205.123.65", "218.205.123.66-218.205.123.66", "218.205.123" +
".67-218.205.123.67", "218.205.123.68-218.205.123.68", "218.205.123.69-218.205.123.69", "218.205.123" + ".67-218.205.123.67", "218.205.123.68-218.205.123.68", "218.205.123.69-218.205.123.69", "218.205.123" +
".70-218.205.123.70", "112.15.37.128-112.15.37.191", "112.15.38.208-112.15.38.223", "112.15.38.224-112.15" + ".70-218.205.123.70", "112.15.37.128-112.15.37.191", "112.15.38.208-112.15.38.223", "112.15.38.224-112.15" +
".38.255", "117.149.150.0-117.149.150.31", "218.205.123.109-218.205.123.109", "218.205.123.17-218.205.123" + ".38.255", "117.149.150.0-117.149.150.31", "218.205.123.109-218.205.123.109", "218.205.123.17-218.205.123" +
".17", "218.205.123.90-218.205.123.90", "117.149.150.114-117.149.150.114", "117.149.150.115-117.149.150" + ".17", "218.205.123.90-218.205.123.90", "117.149.150.114-117.149.150.114", "117.149.150.115-117.149.150" +
".115", "117.149.150.116-117.149.150.116", "117.149.150.117-117.149.150.117", "117.149.150.118-117.149" + ".115", "117.149.150.116-117.149.150.116", "117.149.150.117-117.149.150.117", "117.149.150.118-117.149" +
".150.118", "117.149.150.119-117.149.150.119", "117.149.150.120-117.149.150.120", "117.149.150.121-117" + ".150.118", "117.149.150.119-117.149.150.119", "117.149.150.120-117.149.150.120", "117.149.150.121-117" +
".149.150.121", "111.1.70.146-111.1.70.146", "111.1.70.147-111.1.70.147", "218.205.123.140-218.205.123" + ".149.150.121", "111.1.70.146-111.1.70.146", "111.1.70.147-111.1.70.147", "218.205.123.140-218.205.123" +
".140", "218.205.123.141-218.205.123.141", "218.205.123.72-218.205.123.79", "218.205.123.80-218.205.123" + ".140", "218.205.123.141-218.205.123.141", "218.205.123.72-218.205.123.79", "218.205.123.80-218.205.123" +
".83", "218.205.123.86-218.205.123.86", "218.205.123.98-218.205.123.98", "218.205.123.99-218.205.123.99", ".83", "218.205.123.86-218.205.123.86", "218.205.123.98-218.205.123.98", "218.205.123.99-218.205.123.99",
"112.15.1.0-112.15.1.255", "112.15.2.0-112.15.2.255", "112.15.3.0-112.15.3.255", "112.15.36.0-112.15.36" + "112.15.1.0-112.15.1.255", "112.15.2.0-112.15.2.255", "112.15.3.0-112.15.3.255", "112.15.36.0-112.15.36" +
".255", "112.15.37.0-112.15.37.127", "117.149.150.32-117.149.150.35", "117.149.150.36-117.149.150.39", ".255", "112.15.37.0-112.15.37.127", "117.149.150.32-117.149.150.35", "117.149.150.36-117.149.150.39",
"117.149.150.40-117.149.150.47", "117.149.150.48-117.149.150.51", "117.149.150.52-117.149.150.55", "117" + "117.149.150.40-117.149.150.47", "117.149.150.48-117.149.150.51", "117.149.150.52-117.149.150.55", "117" +
".149.150.56-117.149.150.59", "117.149.144.67-117.149.144.67", "117.149.150.102-117.149.150.102", "117" + ".149.150.56-117.149.150.59", "117.149.144.67-117.149.144.67", "117.149.150.102-117.149.150.102", "117" +
".149.150.103-117.149.150.103", "117.149.150.122-117.149.150.122", "117.149.150.123-117.149.150.123", ".149.150.103-117.149.150.103", "117.149.150.122-117.149.150.122", "117.149.150.123-117.149.150.123",
"117.149.150.124-117.149.150.124", "117.149.151.0-117.149.151.255", "218.205.123.0-218.205.123.7", "117" + "117.149.150.124-117.149.150.124", "117.149.151.0-117.149.151.255", "218.205.123.0-218.205.123.7", "117" +
".149.150.98-117.149.150.98", "218.205.123.30-218.205.123.30", "111.1.163.0-111.1.163.255", "111.1.162" + ".149.150.98-117.149.150.98", "218.205.123.30-218.205.123.30", "111.1.163.0-111.1.163.255", "111.1.162" +
".128-111.1.162.159", "111.1.162.0-111.1.162.127", "111.1.175.0-111.1.175.255", "111.1.166.0-111.1.166" + ".128-111.1.162.159", "111.1.162.0-111.1.162.127", "111.1.175.0-111.1.175.255", "111.1.166.0-111.1.166" +
".255", "111.1.167.0-111.1.167.127", "111.1.169.0-111.1.169.255", "111.1.170.0-111.1.170.255", "111.1.160" + ".255", "111.1.167.0-111.1.167.127", "111.1.169.0-111.1.169.255", "111.1.170.0-111.1.170.255", "111.1.160" +
".0-111.1.160.255", "111.1.161.0-111.1.161.255", "111.1.162.175-111.1.162.175", "111.1.173.0-111.1.173" + ".0-111.1.160.255", "111.1.161.0-111.1.161.255", "111.1.162.175-111.1.162.175", "111.1.173.0-111.1.173" +
".255", "111.1.162.160-111.1.162.167", "120.199.88.30-120.199.88.30", "117.148.171.0-117.148.171.255", ".255", "111.1.162.160-111.1.162.167", "120.199.88.30-120.199.88.30", "117.148.171.0-117.148.171.255",
"117.148.168.0-117.148.168.255", "117.148.143.0-117.148.143.255", "211.140.21.112-211.140.21.119", "111.1" + "117.148.168.0-117.148.168.255", "117.148.143.0-117.148.143.255", "211.140.21.112-211.140.21.119", "111.1" +
".60.0-111.1.60.255", "112.13.169.0-112.13.169.255", "112.13.168.0-112.13.168.255", "218.205.95.0-218.205" + ".60.0-111.1.60.255", "112.13.169.0-112.13.169.255", "112.13.168.0-112.13.168.255", "218.205.95.0-218.205" +
".95.255", "218.205.94.0-218.205.94.255", "218.205.93.0-218.205.93.255", "218.205.92.0-218.205.92.255", ".95.255", "218.205.94.0-218.205.94.255", "218.205.93.0-218.205.93.255", "218.205.92.0-218.205.92.255",
"112.17.26.0-112.17.26.255", "112.17.13.0-112.17.13.255", "112.17.11.0-112.17.11.255", "112.17.10.0-112" + "112.17.26.0-112.17.26.255", "112.17.13.0-112.17.13.255", "112.17.11.0-112.17.11.255", "112.17.10.0-112" +
".17.10.255", "112.17.12.0-112.17.12.255", "112.17.9.0-112.17.9.255", "112.17.8.0-112.17.8.255", "211.138" + ".17.10.255", "112.17.12.0-112.17.12.255", "112.17.9.0-112.17.9.255", "112.17.8.0-112.17.8.255", "211.138" +
".113.0-211.138.113.255", "211.140.23.0-211.140.23.255", "111.1.63.0-111.1.63.255", "111.1.62.0-111.1.62" + ".113.0-211.138.113.255", "211.140.23.0-211.140.23.255", "111.1.63.0-111.1.63.255", "111.1.62.0-111.1.62" +
".255", "111.1.61.0-111.1.61.255", "111.1.59.0-111.1.59.188", "111.1.58.0-111.1.58.255", "111.1.57.0-111" + ".255", "111.1.61.0-111.1.61.255", "111.1.59.0-111.1.59.188", "111.1.58.0-111.1.58.255", "111.1.57.0-111" +
".1.57.255", "111.1.56.0-111.1.56.255", "111.1.51.0-111.1.51.255", "111.1.50.0-111.1.50.255", "111.1.48" + ".1.57.255", "111.1.56.0-111.1.56.255", "111.1.51.0-111.1.51.255", "111.1.50.0-111.1.50.255", "111.1.48" +
".0-111.1.48.255", "111.1.49.0-111.1.49.97", "111.1.59.190-111.1.59.255", "221.131.216.0-221.131.216.255" ".0-111.1.48.255", "111.1.49.0-111.1.49.97", "111.1.59.190-111.1.59.255", "221.131.216.0-221.131.216.255"
, "111.2.186.0-111.2.186.255", "111.2.185.0-111.2.185.255", "111.2.183.0-111.2.183.255", "111.2.182.0-111" + , "111.2.186.0-111.2.186.255", "111.2.185.0-111.2.185.255", "111.2.183.0-111.2.183.255", "111.2.182.0-111" +
".2.182.255", "111.2.181.0-111.2.181.255", "111.2.180.0-111.2.180.255", "112.13.207.0-112.13.207.255", ".2.182.255", "111.2.181.0-111.2.181.255", "111.2.180.0-111.2.180.255", "112.13.207.0-112.13.207.255",
"112.13.206.0-112.13.206.255", "112.13.205.0-112.13.205.255", "112.13.204.0-112.13.204.255", "112.13.203" + "112.13.206.0-112.13.206.255", "112.13.205.0-112.13.205.255", "112.13.204.0-112.13.204.255", "112.13.203" +
".0-112.13.203.255", "112.13.202.0-112.13.202.255", "112.13.201.0-112.13.201.255", "112.13.200.0-112.13" + ".0-112.13.203.255", "112.13.202.0-112.13.202.255", "112.13.201.0-112.13.201.255", "112.13.200.0-112.13" +
".200.255", "112.13.199.0-112.13.199.255", "112.13.198.0-112.13.198.255", "112.13.197.0-112.13.197.255", ".200.255", "112.13.199.0-112.13.199.255", "112.13.198.0-112.13.198.255", "112.13.197.0-112.13.197.255",
"112.13.196.0-112.13.196.255", "112.13.195.0-112.13.195.255", "112.13.194.0-112.13.194.255", "112.13.193" + "112.13.196.0-112.13.196.255", "112.13.195.0-112.13.195.255", "112.13.194.0-112.13.194.255", "112.13.193" +
".0-112.13.193.255", "211.138.112.0-211.138.112.255", "112.13.93.0-112.13.93.255", "112.13.110.0-112.13" + ".0-112.13.193.255", "211.138.112.0-211.138.112.255", "112.13.93.0-112.13.93.255", "112.13.110.0-112.13" +
".110.255", "112.13.95.0-112.13.95.255", "112.13.91.0-112.13.91.255", "112.13.89.0-112.13.89.255", "112" + ".110.255", "112.13.95.0-112.13.95.255", "112.13.91.0-112.13.91.255", "112.13.89.0-112.13.89.255", "112" +
".13.88.0-112.13.88.255", "112.13.109.0-112.13.109.255", "112.13.100.0-112.13.100.255", "112.13.99.0-112" + ".13.88.0-112.13.88.255", "112.13.109.0-112.13.109.255", "112.13.100.0-112.13.100.255", "112.13.99.0-112" +
".13.99.255", "112.13.98.0-112.13.98.255", "117.142.240.214-117.142.240.214", "117.142.240.213-117.142" + ".13.99.255", "112.13.98.0-112.13.98.255", "117.142.240.214-117.142.240.214", "117.142.240.213-117.142" +
".240.213", "117.142.240.212-117.142.240.212", "112.13.171.0-112.13.171.255", "112.13.102.0-112.13.102" + ".240.213", "117.142.240.212-117.142.240.212", "112.13.171.0-112.13.171.255", "112.13.102.0-112.13.102" +
".255", "112.13.101.0-112.13.101.255", "112.13.96.0-112.13.96.255", "112.13.94.0-112.13.94.255", "112.13" + ".255", "112.13.101.0-112.13.101.255", "112.13.96.0-112.13.96.255", "112.13.94.0-112.13.94.255", "112.13" +
".92.0-112.13.92.255", "112.13.90.0-112.13.90.255", "111.3.72.144-111.3.72.159", "111.3.72.160-111.3.72" + ".92.0-112.13.92.255", "112.13.90.0-112.13.90.255", "111.3.72.144-111.3.72.159", "111.3.72.160-111.3.72" +
".191", "111.3.72.192-111.3.72.193", "218.205.117.2-218.205.117.2", "111.3.72.138-111.3.72.138", "218.205" + ".191", "111.3.72.192-111.3.72.193", "218.205.117.2-218.205.117.2", "111.3.72.138-111.3.72.138", "218.205" +
".117.98-218.205.117.98", "218.205.117.114-218.205.117.114", "218.205.117.115-218.205.117.115", "218.205" + ".117.98-218.205.117.98", "218.205.117.114-218.205.117.114", "218.205.117.115-218.205.117.115", "218.205" +
".117.116-218.205.117.116", "111.3.72.194-111.3.72.195", "111.3.72.196-111.3.72.199", "111.3.72.200-111.3" + ".117.116-218.205.117.116", "111.3.72.194-111.3.72.195", "111.3.72.196-111.3.72.199", "111.3.72.200-111.3" +
".72.207", "111.3.72.208-111.3.72.223", "111.3.72.224-111.3.72.255", "183.246.192.0-183.246.192.255", ".72.207", "111.3.72.208-111.3.72.223", "111.3.72.224-111.3.72.255", "183.246.192.0-183.246.192.255",
"183.246.193.0-183.246.193.1", "218.205.117.14-218.205.117.14", "218.205.117.22-218.205.117.22", "218.205" + "183.246.193.0-183.246.193.1", "218.205.117.14-218.205.117.14", "218.205.117.22-218.205.117.22", "218.205" +
".117.74-218.205.117.74", "111.3.72.142-111.3.72.142", "183.246.193.14-183.246.193.14", "218.205.117" + ".117.74-218.205.117.74", "111.3.72.142-111.3.72.142", "183.246.193.14-183.246.193.14", "218.205.117" +
".82-218.205.117.82", "218.205.117.90-218.205.117.90", "218.205.117.94-218.205.117.94", "218.205.117" + ".82-218.205.117.82", "218.205.117.90-218.205.117.90", "218.205.117.94-218.205.117.94", "218.205.117" +
".102-218.205.117.102", "218.205.117.122-218.205.117.122", "111.3.72.130-111.3.72.130", "111.3.72.131-111" + ".102-218.205.117.102", "218.205.117.122-218.205.117.122", "111.3.72.130-111.3.72.130", "111.3.72.131-111" +
".3.72.131", "111.3.72.129-111.3.72.129", "218.205.117.126-218.205.117.126", "218.205.117.26-218.205.117" + ".3.72.131", "111.3.72.129-111.3.72.129", "218.205.117.126-218.205.117.126", "218.205.117.26-218.205.117" +
".26", "218.205.117.58-218.205.117.58", "218.205.117.62-218.205.117.62", "218.205.117.66-218.205.117.66", ".26", "218.205.117.58-218.205.117.58", "218.205.117.62-218.205.117.62", "218.205.117.66-218.205.117.66",
"218.205.117.70-218.205.117.70", "218.205.117.54-218.205.117.54", "218.205.117.36-218.205.117.39", "218" + "218.205.117.70-218.205.117.70", "218.205.117.54-218.205.117.54", "218.205.117.36-218.205.117.39", "218" +
".205.117.32-218.205.117.35", "218.205.117.128-218.205.117.255", "218.205.117.4-218.205.117.7", "218.205" + ".205.117.32-218.205.117.35", "218.205.117.128-218.205.117.255", "218.205.117.4-218.205.117.7", "218.205" +
".117.76-218.205.117.79", "218.205.124.128-218.205.124.159", "218.205.124.100-218.205.124.103", "218.205" + ".117.76-218.205.117.79", "218.205.124.128-218.205.124.159", "218.205.124.100-218.205.124.103", "218.205" +
".124.64-218.205.124.79", "218.205.124.80-218.205.124.83", "218.205.124.244-218.205.124.247", "218.205" + ".124.64-218.205.124.79", "218.205.124.80-218.205.124.83", "218.205.124.244-218.205.124.247", "218.205" +
".124.84-218.205.124.87", "218.205.124.28-218.205.124.31", "218.205.124.8-218.205.124.15", "218.205.124" + ".124.84-218.205.124.87", "218.205.124.28-218.205.124.31", "218.205.124.8-218.205.124.15", "218.205.124" +
".48-218.205.124.63", "218.205.124.192-218.205.124.223", "218.205.124.160-218.205.124.191", "218.205.124" + ".48-218.205.124.63", "218.205.124.192-218.205.124.223", "218.205.124.160-218.205.124.191", "218.205.124" +
".0-218.205.124.7", "218.205.124.16-218.205.124.19", "218.205.125.128-218.205.125.255", "218.205.125" + ".0-218.205.124.7", "218.205.124.16-218.205.124.19", "218.205.125.128-218.205.125.255", "218.205.125" +
".96-218.205.125.127", "120.199.74.4-120.199.74.12", "120.199.74.2-120.199.74.2", "120.199.73.154-120.199" + ".96-218.205.125.127", "120.199.74.4-120.199.74.12", "120.199.74.2-120.199.74.2", "120.199.73.154-120.199" +
".73.157", "112.15.173.46-112.15.173.46", "111.1.43.64-111.1.43.79", "111.1.43.30-111.1.43.30", "111.1.43" + ".73.157", "112.15.173.46-112.15.173.46", "111.1.43.64-111.1.43.79", "111.1.43.30-111.1.43.30", "111.1.43" +
".26-111.1.43.26", "111.1.43.2-111.1.43.2", "111.1.43.154-111.1.43.155", "111.1.43.146-111.1.43.150", ".26-111.1.43.26", "111.1.43.2-111.1.43.2", "111.1.43.154-111.1.43.155", "111.1.43.146-111.1.43.150",
"111.1.43.14-111.1.43.14", "111.1.40.82-111.1.40.84", "111.1.40.190-111.1.40.190", "111.1.40.66-111.1.40" + "111.1.43.14-111.1.43.14", "111.1.40.82-111.1.40.84", "111.1.40.190-111.1.40.190", "111.1.40.66-111.1.40" +
".75", "111.1.40.186-111.1.40.186", "111.1.40.182-111.1.40.182", "111.1.40.162-111.1.40.162", "111.1.40" + ".75", "111.1.40.186-111.1.40.186", "111.1.40.182-111.1.40.182", "111.1.40.162-111.1.40.162", "111.1.40" +
".128-111.1.40.159", "111.1.40.0-111.1.40.7", "111.1.3.74-111.1.3.75", "111.1.3.66-111.1.3.66", "111.1.3" + ".128-111.1.40.159", "111.1.40.0-111.1.40.7", "111.1.3.74-111.1.3.75", "111.1.3.66-111.1.3.66", "111.1.3" +
".208-111.1.3.223", "111.1.3.195-111.1.3.195", "111.1.3.176-111.1.3.191", "111.1.3.170-111.1.3.173", "111" + ".208-111.1.3.223", "111.1.3.195-111.1.3.195", "111.1.3.176-111.1.3.191", "111.1.3.170-111.1.3.173", "111" +
".1.3.128-111.1.3.159", "111.1.3.122-111.1.3.123", "111.1.3.0-111.1.3.31", "111.1.2.98-111.1.2.99", "111" + ".1.3.128-111.1.3.159", "111.1.3.122-111.1.3.123", "111.1.3.0-111.1.3.31", "111.1.2.98-111.1.2.99", "111" +
".1.2.64-111.1.2.79", "111.1.2.58-111.1.2.62", "111.1.2.202-111.1.2.206", "111.1.2.18-111.1.2.30", "111.1" + ".1.2.64-111.1.2.79", "111.1.2.58-111.1.2.62", "111.1.2.202-111.1.2.206", "111.1.2.18-111.1.2.30", "111.1" +
".2.155-111.1.2.155", "111.1.2.146-111.1.2.146", "111.1.2.100-111.1.2.126", "111.1.2.0-111.1.2.15", "111" + ".2.155-111.1.2.155", "111.1.2.146-111.1.2.146", "111.1.2.100-111.1.2.126", "111.1.2.0-111.1.2.15", "111" +
".1.1.90-111.1.1.90", "111.1.1.82-111.1.1.84", "111.1.1.50-111.1.1.53", "111.1.1.238-111.1.1.238", "111.1" + ".1.1.90-111.1.1.90", "111.1.1.82-111.1.1.84", "111.1.1.50-111.1.1.53", "111.1.1.238-111.1.1.238", "111.1" +
".1.234-111.1.1.234", "111.1.1.187-111.1.1.197", "111.1.1.106-111.1.1.107", "111.1.0.98-111.1.0.99", "111" + ".1.234-111.1.1.234", "111.1.1.187-111.1.1.197", "111.1.1.106-111.1.1.107", "111.1.0.98-111.1.0.99", "111" +
".1.0.166-111.1.0.166", "111.1.0.160-111.1.0.163", "111.1.0.101-111.1.0.155", "111.1.0.100-111.1.0.100", ".1.0.166-111.1.0.166", "111.1.0.160-111.1.0.163", "111.1.0.101-111.1.0.155", "111.1.0.100-111.1.0.100",
"112.12.89.128-112.12.89.191", "112.12.88.0-112.12.88.255", "112.12.6.128-112.12.6.255", "112.12.58" + "112.12.89.128-112.12.89.191", "112.12.88.0-112.12.88.255", "112.12.6.128-112.12.6.255", "112.12.58" +
".20-112.12.58.20", "112.12.58.18-112.12.58.18", "112.12.58.0-112.12.58.15", "112.12.31.144-112.12.31" + ".20-112.12.58.20", "112.12.58.18-112.12.58.18", "112.12.58.0-112.12.58.15", "112.12.31.144-112.12.31" +
".159", "112.12.26.128-112.12.26.255", "112.12.18.64-112.12.18.95", "112.12.18.128-112.12.18.255", "112" + ".159", "112.12.26.128-112.12.26.255", "112.12.18.64-112.12.18.95", "112.12.18.128-112.12.18.255", "112" +
".12.18.0-112.12.18.63", "112.12.15.128-112.12.15.191", "112.12.125.0-112.12.125.255", "111.2.127.0-111.2" + ".12.18.0-112.12.18.63", "112.12.15.128-112.12.15.191", "112.12.125.0-112.12.125.255", "111.2.127.0-111.2" +
".127.255", "111.2.122.0-111.2.122.63", "111.1.9.0-111.1.9.255", "111.1.8.68-111.1.8.79", "111.1.8.48-111" + ".127.255", "111.2.122.0-111.2.122.63", "111.1.9.0-111.1.9.255", "111.1.8.68-111.1.8.79", "111.1.8.48-111" +
".1.8.61", "111.1.8.4-111.1.8.15", "111.1.8.36-111.1.8.47", "111.1.8.242-111.1.8.251", "111.1.8.173-111.1" + ".1.8.61", "111.1.8.4-111.1.8.15", "111.1.8.36-111.1.8.47", "111.1.8.242-111.1.8.251", "111.1.8.173-111.1" +
".8.174", "111.1.8.17-111.1.8.28", "111.1.8.164-111.1.8.172", "111.1.8.142-111.1.8.145", "111.1.8.132-111" + ".8.174", "111.1.8.17-111.1.8.28", "111.1.8.164-111.1.8.172", "111.1.8.142-111.1.8.145", "111.1.8.132-111" +
".1.8.134", "111.1.8.123-111.1.8.126", "111.1.8.118-111.1.8.118", "111.1.8.115-111.1.8.116", "111.1.8" + ".1.8.134", "111.1.8.123-111.1.8.126", "111.1.8.118-111.1.8.118", "111.1.8.115-111.1.8.116", "111.1.8" +
".113-111.1.8.113", "111.1.8.111-111.1.8.111", "111.1.8.107-111.1.8.107", "111.1.8.103-111.1.8.103", "111" + ".113-111.1.8.113", "111.1.8.111-111.1.8.111", "111.1.8.107-111.1.8.107", "111.1.8.103-111.1.8.103", "111" +
".1.10.0-111.1.10.255", "117.149.36.104-117.149.36.107", "112.17.25.0-112.17.25.255", "112.17.24.128-112" + ".1.10.0-111.1.10.255", "117.149.36.104-117.149.36.107", "112.17.25.0-112.17.25.255", "112.17.24.128-112" +
".17.24.255", "112.17.24.0-112.17.24.127", "223.95.61.0-223.95.61.255", "223.95.60.0-223.95.60.255", "223" + ".17.24.255", "112.17.24.0-112.17.24.127", "223.95.61.0-223.95.61.255", "223.95.60.0-223.95.60.255", "223" +
".95.58.0-223.95.59.255", "223.95.56.0-223.95.56.255", "223.95.33.0-223.95.33.127", "223.94.74.0-223.94" + ".95.58.0-223.95.59.255", "223.95.56.0-223.95.56.255", "223.95.33.0-223.95.33.127", "223.94.74.0-223.94" +
".74.255", "223.94.66.128-223.94.66.255", "211.140.141.94-211.140.141.94", "211.140.141.67-211.140.141" + ".74.255", "223.94.66.128-223.94.66.255", "211.140.141.94-211.140.141.94", "211.140.141.67-211.140.141" +
".77", "211.140.141.47-211.140.141.47", "211.140.141.214-211.140.141.214", "211.140.141.206-211.140.141" + ".77", "211.140.141.47-211.140.141.47", "211.140.141.214-211.140.141.214", "211.140.141.206-211.140.141" +
".206", "211.140.141.204-211.140.141.204", "211.140.141.179-211.140.141.179", "211.140.141.153-211.140" + ".206", "211.140.141.204-211.140.141.204", "211.140.141.179-211.140.141.179", "211.140.141.153-211.140" +
".141.153", "211.140.140.50-211.140.140.50", "211.140.140.48-211.140.140.48", "211.140.140.38-211.140.140" + ".141.153", "211.140.140.50-211.140.140.50", "211.140.140.48-211.140.140.48", "211.140.140.38-211.140.140" +
".38", "211.140.138.8-211.140.138.9", "211.140.138.28-211.140.138.28", "211.140.138.2-211.140.138.5", ".38", "211.140.138.8-211.140.138.9", "211.140.138.28-211.140.138.28", "211.140.138.2-211.140.138.5",
"211.140.138.146-211.140.138.146", "211.140.138.10-211.140.138.12", "183.248.129.0-183.248.129.255", "183" + "211.140.138.146-211.140.138.146", "211.140.138.10-211.140.138.12", "183.248.129.0-183.248.129.255", "183" +
".248.128.0-183.248.128.255", "123.58.140.0-123.58.143.255", "117.149.39.96-117.149.39.127", "117.149.39" + ".248.128.0-183.248.128.255", "123.58.140.0-123.58.143.255", "117.149.39.96-117.149.39.127", "117.149.39" +
".64-117.149.39.95", "117.149.39.160-117.149.39.191", "117.149.39.128-117.149.39.159", "117.149.39.0-117" + ".64-117.149.39.95", "117.149.39.160-117.149.39.191", "117.149.39.128-117.149.39.159", "117.149.39.0-117" +
".149.39.63", "117.149.38.192-117.149.38.255", "117.149.38.0-117.149.38.63", "117.149.37.128-117.149.37" + ".149.39.63", "117.149.38.192-117.149.38.255", "117.149.38.0-117.149.38.63", "117.149.37.128-117.149.37" +
".255", "117.149.37.0-117.149.37.127", "117.149.36.128-117.149.36.255", "111.1.26.128-111.1.26.255", "111" + ".255", "117.149.37.0-117.149.37.127", "117.149.36.128-117.149.36.255", "111.1.26.128-111.1.26.255", "111" +
".1.26.0-111.1.26.127", "111.1.25.98-111.1.25.99", "111.1.25.6-111.1.25.6", "111.1.25.34-111.1.25.34", ".1.26.0-111.1.26.127", "111.1.25.98-111.1.25.99", "111.1.25.6-111.1.25.6", "111.1.25.34-111.1.25.34",
"111.1.25.2-111.1.25.3", "111.1.25.192-111.1.25.255", "111.1.25.16-111.1.25.31", "111.1.25.12-111.1.25" + "111.1.25.2-111.1.25.3", "111.1.25.192-111.1.25.255", "111.1.25.16-111.1.25.31", "111.1.25.12-111.1.25" +
".15", "111.1.25.114-111.1.25.114", "111.1.25.106-111.1.25.110", "111.1.25.100-111.1.25.102", "111.1.25" + ".15", "111.1.25.114-111.1.25.114", "111.1.25.106-111.1.25.110", "111.1.25.100-111.1.25.102", "111.1.25" +
".10-111.1.25.10", "111.1.24.128-111.1.24.255", "111.1.27.0-111.1.27.255", "111.1.5.119-111.1.5.125", ".10-111.1.25.10", "111.1.24.128-111.1.24.255", "111.1.27.0-111.1.27.255", "111.1.5.119-111.1.5.125",
"111.1.5.130-111.1.5.130", "111.1.5.133-111.1.5.145", "111.1.5.147-111.1.5.149", "111.1.5.152-111.1.5" + "111.1.5.130-111.1.5.130", "111.1.5.133-111.1.5.145", "111.1.5.147-111.1.5.149", "111.1.5.152-111.1.5" +
".154", "111.1.5.162-111.1.5.165", "111.1.5.168-111.1.5.170", "111.1.5.172-111.1.5.179", "111.1.5.182-111" + ".154", "111.1.5.162-111.1.5.165", "111.1.5.168-111.1.5.170", "111.1.5.172-111.1.5.179", "111.1.5.182-111" +
".1.5.185", "111.1.5.189-111.1.5.189", "111.1.5.19-111.1.5.19", "111.1.5.2-111.1.5.2", "111.1.5.20-111.1" + ".1.5.185", "111.1.5.189-111.1.5.189", "111.1.5.19-111.1.5.19", "111.1.5.2-111.1.5.2", "111.1.5.20-111.1" +
".5.23", "111.1.5.25-111.1.5.25", "111.1.5.29-111.1.5.29", "111.1.5.3-111.1.5.3", "111.1.5.35-111.1.5.37" ".5.23", "111.1.5.25-111.1.5.25", "111.1.5.29-111.1.5.29", "111.1.5.3-111.1.5.3", "111.1.5.35-111.1.5.37"
, "111.1.5.4-111.1.5.5", "111.1.5.50-111.1.5.59", "111.1.5.6-111.1.5.6", "111.1.5.67-111.1.5.69", "111.1" + , "111.1.5.4-111.1.5.5", "111.1.5.50-111.1.5.59", "111.1.5.6-111.1.5.6", "111.1.5.67-111.1.5.69", "111.1" +
".5.77-111.1.5.77", "111.1.5.79-111.1.5.79", "111.1.5.8-111.1.5.8", "111.1.5.80-111.1.5.86", "111.1.6" + ".5.77-111.1.5.77", "111.1.5.79-111.1.5.79", "111.1.5.8-111.1.5.8", "111.1.5.80-111.1.5.86", "111.1.6" +
".12-111.1.6.12", "111.1.6.128-111.1.6.143", "111.1.6.13-111.1.6.13", "111.1.6.147-111.1.6.147", "111.1.6" + ".12-111.1.6.12", "111.1.6.128-111.1.6.143", "111.1.6.13-111.1.6.13", "111.1.6.147-111.1.6.147", "111.1.6" +
".149-111.1.6.149", "111.1.6.153-111.1.6.153", "111.1.6.156-111.1.6.158", "111.1.6.16-111.1.6.16", "111.1" + ".149-111.1.6.149", "111.1.6.153-111.1.6.153", "111.1.6.156-111.1.6.158", "111.1.6.16-111.1.6.16", "111.1" +
".6.160-111.1.6.191", "111.1.6.18-111.1.6.19", "111.1.6.192-111.1.6.199", "111.1.6.2-111.1.6.2", "111.1.6" + ".6.160-111.1.6.191", "111.1.6.18-111.1.6.19", "111.1.6.192-111.1.6.199", "111.1.6.2-111.1.6.2", "111.1.6" +
".200-111.1.6.216", "111.1.6.224-111.1.6.255", "111.1.6.35-111.1.6.39", "111.1.6.4-111.1.6.4", "111.1.6" + ".200-111.1.6.216", "111.1.6.224-111.1.6.255", "111.1.6.35-111.1.6.39", "111.1.6.4-111.1.6.4", "111.1.6" +
".40-111.1.6.49", "111.1.6.5-111.1.6.8", "111.1.6.50-111.1.6.50", "111.1.6.84-111.1.6.85", "111.1.6" + ".40-111.1.6.49", "111.1.6.5-111.1.6.8", "111.1.6.50-111.1.6.50", "111.1.6.84-111.1.6.85", "111.1.6" +
".88-111.1.6.91", "111.1.7.128-111.1.7.255", "111.3.64.0-111.3.67.255", "117.148.189.0-117.148.189.255", ".88-111.1.6.91", "111.1.7.128-111.1.7.255", "111.3.64.0-111.3.67.255", "117.148.189.0-117.148.189.255",
"117.148.190.0-117.148.190.63", "117.148.190.128-117.148.190.255", "117.148.191.0-117.148.191.255", "183" + "117.148.190.0-117.148.190.63", "117.148.190.128-117.148.190.255", "117.148.191.0-117.148.191.255", "183" +
".245.10.0-183.245.10.255", "183.245.11.128-183.245.11.255", "183.245.12.0-183.245.12.31", "183.245.12" + ".245.10.0-183.245.10.255", "183.245.11.128-183.245.11.255", "183.245.12.0-183.245.12.31", "183.245.12" +
".32-183.245.12.35", "183.245.5.0-183.245.5.255", "183.245.6.0-183.245.9.255", "39.175.96.0-39.175.97" + ".32-183.245.12.35", "183.245.5.0-183.245.5.255", "183.245.6.0-183.245.9.255", "39.175.96.0-39.175.97" +
".255", "111.1.14.0-111.1.14.31", "111.1.14.32-111.1.14.47", "111.1.15.105-111.1.15.105", "111.1.15" + ".255", "111.1.14.0-111.1.14.31", "111.1.14.32-111.1.14.47", "111.1.15.105-111.1.15.105", "111.1.15" +
".11-111.1.15.11", "111.1.15.130-111.1.15.146", "111.1.15.157-111.1.15.164", "111.1.15.198-111.1.15.200", ".11-111.1.15.11", "111.1.15.130-111.1.15.146", "111.1.15.157-111.1.15.164", "111.1.15.198-111.1.15.200",
"111.1.15.203-111.1.15.203", "111.1.15.240-111.1.15.255", "112.16.2.128-112.16.2.255", "112.16.224.0-112" + "111.1.15.203-111.1.15.203", "111.1.15.240-111.1.15.255", "112.16.2.128-112.16.2.255", "112.16.224.0-112" +
".16.230.255", "112.16.231.128-112.16.231.255", "112.17.18.0-112.17.19.255", "117.149.194.208-117.149.194" + ".16.230.255", "112.16.231.128-112.16.231.255", "112.17.18.0-112.17.19.255", "117.149.194.208-117.149.194" +
".223", "117.149.194.224-117.149.194.255", "117.149.194.80-117.149.194.95", "117.149.195.0-117.149.195" + ".223", "117.149.194.224-117.149.194.255", "117.149.194.80-117.149.194.95", "117.149.195.0-117.149.195" +
".63", "117.149.196.0-117.149.196.127", "117.149.197.0-117.149.197.255", "117.149.198.0-117.149.198.127", ".63", "117.149.196.0-117.149.196.127", "117.149.197.0-117.149.197.255", "117.149.198.0-117.149.198.127",
"117.149.198.128-117.149.198.191", "117.149.198.192-117.149.198.207", "117.149.224.0-117.149.231.255", "117.149.198.128-117.149.198.191", "117.149.198.192-117.149.198.207", "117.149.224.0-117.149.231.255",
"117.149.232.0-117.149.232.255", "117.149.240.0-117.149.241.255", "117.149.244.0-117.149.248.255", "117" + "117.149.232.0-117.149.232.255", "117.149.240.0-117.149.241.255", "117.149.244.0-117.149.248.255", "117" +
".149.249.0-117.149.249.255", "117.149.250.128-117.149.250.255", "117.149.251.128-117.149.251.255", "117" + ".149.249.0-117.149.249.255", "117.149.250.128-117.149.250.255", "117.149.251.128-117.149.251.255", "117" +
".149.251.16-117.149.251.31", "117.149.251.32-117.149.251.63", "117.149.251.8-117.149.251.15", "117.149" + ".149.251.16-117.149.251.31", "117.149.251.32-117.149.251.63", "117.149.251.8-117.149.251.15", "117.149" +
".252.0-117.149.252.255", "117.149.254.0-117.149.254.255", "117.149.255.124-117.149.255.131", "117.149" + ".252.0-117.149.252.255", "117.149.254.0-117.149.254.255", "117.149.255.124-117.149.255.131", "117.149" +
".255.160-117.149.255.243", "120.193.39.105-120.193.39.105", "120.193.39.11-120.193.39.11", "120.193.39" + ".255.160-117.149.255.243", "120.193.39.105-120.193.39.105", "120.193.39.11-120.193.39.11", "120.193.39" +
".13-120.193.39.13", "120.193.39.16-120.193.39.19", "120.193.39.21-120.193.39.21", "120.193.39.24-120.193" + ".13-120.193.39.13", "120.193.39.16-120.193.39.19", "120.193.39.21-120.193.39.21", "120.193.39.24-120.193" +
".39.24", "120.193.39.32-120.193.39.55", "120.193.39.5-120.193.39.8", "120.193.39.56-120.193.39.62", "120" + ".39.24", "120.193.39.32-120.193.39.55", "120.193.39.5-120.193.39.8", "120.193.39.56-120.193.39.62", "120" +
".193.39.74-120.193.39.79", "120.193.39.80-120.193.39.90", "120.193.39.92-120.193.39.92", "120.193.39" + ".193.39.74-120.193.39.79", "120.193.39.80-120.193.39.90", "120.193.39.92-120.193.39.92", "120.193.39" +
".94-120.193.39.94", "120.193.39.96-120.193.39.96", "211.140.62.0-211.140.62.127", "211.140.62.238-211" + ".94-120.193.39.94", "120.193.39.96-120.193.39.96", "211.140.62.0-211.140.62.127", "211.140.62.238-211" +
".140.62.239", "211.140.62.242-211.140.62.243", "211.140.62.247-211.140.62.249", "221.131.255.128-221.131" + ".140.62.239", "211.140.62.242-211.140.62.243", "211.140.62.247-211.140.62.249", "221.131.255.128-221.131" +
".255.143", "221.131.255.16-221.131.255.31", "221.131.255.240-221.131.255.255", "221.131.255.32-221.131" + ".255.143", "221.131.255.16-221.131.255.31", "221.131.255.240-221.131.255.255", "221.131.255.32-221.131" +
".255.47", "221.131.255.64-221.131.255.95", "221.131.255.8-221.131.255.15", "221.131.255.98-221.131.255" + ".255.47", "221.131.255.64-221.131.255.95", "221.131.255.8-221.131.255.15", "221.131.255.98-221.131.255" +
".99", "43.240.156.0-43.240.159.255", "43.240.72.0-43.240.75.255", "43.241.16.0-43.241.19.255", "103.107" + ".99", "43.240.156.0-43.240.159.255", "43.240.72.0-43.240.75.255", "43.241.16.0-43.241.19.255", "103.107" +
".195.0-103.107.195.255", "111.1.29.0-111.1.29.251", "111.1.30.0-111.1.30.255", "111.1.31.11-111.1.31.13" ".195.0-103.107.195.255", "111.1.29.0-111.1.29.251", "111.1.30.0-111.1.30.255", "111.1.31.11-111.1.31.13"
, "111.1.31.119-111.1.31.120", "111.1.31.132-111.1.31.135", "111.1.31.141-111.1.31.141", "111.1.31" + , "111.1.31.119-111.1.31.120", "111.1.31.132-111.1.31.135", "111.1.31.141-111.1.31.141", "111.1.31" +
".158-111.1.31.161", "111.1.31.164-111.1.31.165", "111.1.31.170-111.1.31.170", "111.1.31.172-111.1.31" + ".158-111.1.31.161", "111.1.31.164-111.1.31.165", "111.1.31.170-111.1.31.170", "111.1.31.172-111.1.31" +
".176", "111.1.31.180-111.1.31.181", "111.1.31.184-111.1.31.186", "111.1.31.19-111.1.31.19", "111.1.31" + ".176", "111.1.31.180-111.1.31.181", "111.1.31.184-111.1.31.186", "111.1.31.19-111.1.31.19", "111.1.31" +
".196-111.1.31.200", "111.1.31.20-111.1.31.21", "111.1.31.202-111.1.31.202", "111.1.31.207-111.1.31.207", ".196-111.1.31.200", "111.1.31.20-111.1.31.21", "111.1.31.202-111.1.31.202", "111.1.31.207-111.1.31.207",
"111.1.31.209-111.1.31.213", "111.1.31.2-111.1.31.7", "111.1.31.221-111.1.31.224", "111.1.31.24-111.1.31" + "111.1.31.209-111.1.31.213", "111.1.31.2-111.1.31.7", "111.1.31.221-111.1.31.224", "111.1.31.24-111.1.31" +
".28", "111.1.31.246-111.1.31.246", "111.1.31.30-111.1.31.30", "111.1.31.51-111.1.31.52", "111.1.31" + ".28", "111.1.31.246-111.1.31.246", "111.1.31.30-111.1.31.30", "111.1.31.51-111.1.31.52", "111.1.31" +
".65-111.1.31.69", "111.1.31.74-111.1.31.74", "111.1.31.8-111.1.31.9", "111.1.31.90-111.1.31.92", "111.1" + ".65-111.1.31.69", "111.1.31.74-111.1.31.74", "111.1.31.8-111.1.31.9", "111.1.31.90-111.1.31.92", "111.1" +
".31.99-111.1.31.101", "111.3.68.112-111.3.68.180", "111.3.68.228-111.3.68.236", "111.3.68.238-111.3.68" + ".31.99-111.1.31.101", "111.3.68.112-111.3.68.180", "111.3.68.228-111.3.68.236", "111.3.68.238-111.3.68" +
".238", "111.3.68.96-111.3.68.111", "111.3.69.0-111.3.69.255", "117.149.146.0-117.149.147.255", "183.131" + ".238", "111.3.68.96-111.3.68.111", "111.3.69.0-111.3.69.255", "117.149.146.0-117.149.147.255", "183.131" +
".16.138-183.131.16.139", "183.131.16.148-183.131.16.151", "183.134.107.20-183.134.107.20", "183.134.107" + ".16.138-183.131.16.139", "183.131.16.148-183.131.16.151", "183.134.107.20-183.134.107.20", "183.134.107" +
".7-183.134.107.7", "183.246.188.0-183.246.188.255", "183.246.189.0-183.246.189.127", "218.205.87.94-218" + ".7-183.134.107.7", "183.246.188.0-183.246.188.255", "183.246.189.0-183.246.189.127", "218.205.87.94-218" +
".205.87.94", "112.13.170.170-112.13.170.170", "111.2.176.8-111.2.176.8", "111.1.59.189-111.1.59.189", ".205.87.94", "112.13.170.170-112.13.170.170", "111.2.176.8-111.2.176.8", "111.1.59.189-111.1.59.189",
"112.13.104.0-112.13.104.255", "111.1.49.98-111.1.49.98", "111.3.72.50/32", "117.149.253.197/32", "111.1" + "112.13.104.0-112.13.104.255", "111.1.49.98-111.1.49.98", "111.3.72.50/32", "117.149.253.197/32", "111.1" +
".49.100/32", "218.205.89.35/32", "117.148.173.130/32"}; ".49.100/32", "218.205.89.35/32", "117.148.173.130/32"};
String ip = "117.149.253.197"; String ip = "117.149.253.197";
for (String n : src) { for (String n : src) {
log.info("{} network {}contains {}", n, log.info("{} network {}contains {}", n,
Helper.ipInRange(n, ip) ? "is " : "not ", Helper.ipInRange(n, ip) ? "is " : "not ",
ip); ip);
} }
} }
@ -459,8 +462,8 @@ public class demo {
String n = "0.0.0.0"; String n = "0.0.0.0";
log.info("{} network {}contains {}", n, log.info("{} network {}contains {}", n,
Helper.ipInRange(n, ip) ? "is " : "not ", Helper.ipInRange(n, ip) ? "is " : "not ",
ip); ip);
} }
/** /**
@ -468,7 +471,7 @@ public class demo {
*/ */
public void haohanStartError() { public void haohanStartError() {
String errMsg = "[{ip=192.168.50.2, 任务名称=三方接口任务467}, {ip=192.168.50.2, 任务名称=三方接口任务468}, {ip=192.168" + String errMsg = "[{ip=192.168.50.2, 任务名称=三方接口任务467}, {ip=192.168.50.2, 任务名称=三方接口任务468}, {ip=192.168" +
".50.2, 任务名称=三方接口任务470}, {ip=192.168.50.2, 任务名称=三方接口任务469}]"; ".50.2, 任务名称=三方接口任务470}, {ip=192.168.50.2, 任务名称=三方接口任务469}]";
String reg = "(\\[(.*?)])"; String reg = "(\\[(.*?)])";
@ -477,8 +480,8 @@ public class demo {
while (n.find()) { while (n.find()) {
log.info("\tsub items: {}", n.group(1) log.info("\tsub items: {}", n.group(1)
.substring(n.group(1).lastIndexOf("=") + 1) .substring(n.group(1).lastIndexOf("=") + 1)
.replaceAll("\\D", "")); .replaceAll("\\D", ""));
} }
} }
@ -487,11 +490,11 @@ public class demo {
*/ */
public void ipaddrVariety() { public void ipaddrVariety() {
String[] ipAddrs = new String[]{ String[] ipAddrs = new String[]{
"ffff::8fff:ffff:0:ffff", "ffff::8fff:ffff:0:ffff",
"::1", "::1",
"192.168.0.1", "192.168.0.1",
"192.168.00.1", "192.168.00.1",
"023.0.2.1" "023.0.2.1"
}; };
for (String s : ipAddrs) { for (String s : ipAddrs) {
@ -515,7 +518,7 @@ public class demo {
Map<Boolean, List<Integer>> groupMap = orgList.stream() Map<Boolean, List<Integer>> groupMap = orgList.stream()
.collect(Collectors.groupingBy(diffList::contains)); .collect(Collectors.groupingBy(diffList::contains));
log.info("Result: {}", groupMap); log.info("Result: {}", groupMap);
} }
@ -572,12 +575,12 @@ public class demo {
* @throws NoSuchPaddingException the no such padding exception * @throws NoSuchPaddingException the no such padding exception
*/ */
public void aes() throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, public void aes() throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException,
NoSuchAlgorithmException, NoSuchPaddingException { NoSuchAlgorithmException, NoSuchPaddingException {
String plainText = "{\"disposeTime\":60,\"flowDirection\":0,\"mulDisposeIp\":[\"1.1.1.1\"],\"type\":0}"; String plainText = "{\"disposeTime\":60,\"flowDirection\":0,\"mulDisposeIp\":[\"1.1.1.1\"],\"type\":0}";
String aesKey = "hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40"; String aesKey = "hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40";
byte[] encode = CryptoHelper.aes128Encryption(plainText.getBytes(StandardCharsets.UTF_8), byte[] encode = CryptoHelper.aes128Encryption(plainText.getBytes(StandardCharsets.UTF_8),
aesKey); aesKey);
log.info("AES Key: {}", aesKey); log.info("AES Key: {}", aesKey);
log.info("Src: {}", plainText); log.info("Src: {}", plainText);
log.info("AES256: {}", CryptoHelper.base64Encryption(encode)); log.info("AES256: {}", CryptoHelper.base64Encryption(encode));
@ -593,9 +596,9 @@ public class demo {
* @throws NoSuchPaddingException the no such padding exception * @throws NoSuchPaddingException the no such padding exception
*/ */
public void aesdec() throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, public void aesdec() throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException,
NoSuchAlgorithmException, NoSuchPaddingException { NoSuchAlgorithmException, NoSuchPaddingException {
String plainText = "6PgUrZa8zZUzDAxAFpV307JfUDVI1gFNo3ZFT7LKtVzRXc3UbwFh6+5i6" + String plainText = "6PgUrZa8zZUzDAxAFpV307JfUDVI1gFNo3ZFT7LKtVzRXc3UbwFh6+5i6" +
"+667frPR5j1p0XOG1i7Nhy85uHUDWUBZUxHF3vXNkgiKtbWLHw="; "+667frPR5j1p0XOG1i7Nhy85uHUDWUBZUxHF3vXNkgiKtbWLHw=";
String aesKey = "hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40"; String aesKey = "hkoUV5ZWh0q1jSxMnpjovVn19Qg99HY6DD40";
@ -674,14 +677,40 @@ public class demo {
*/ */
@Test @Test
public void ipPortMatchTest() { public void ipPortMatchTest() {
String[] srcPort = new String[] {"", "80", "443", "81", null}; String[] srcPort = new String[]{"", "80", "443", "81", null};
String[] dstPort = new String[] {"", "80", "443", "81", null}; String[] dstPort = new String[]{"", "80", "443", "81", null};
for(String s : srcPort) { for (String s : srcPort) {
for(String d : dstPort) { for (String d : dstPort) {
log.info("HTTP: [{}] match [{}] is {}", s, d, Helper.isIpPortMatch(s, d, HttpType.HTTP)); log.info("HTTP: [{}] match [{}] is {}", s, d, Helper.isIpPortMatch(s, d, HttpType.HTTP));
log.info("HTTPS: [{}] match [{}] is {}", s, d, Helper.isIpPortMatch(s, d, HttpType.HTTPS)); log.info("HTTPS: [{}] match [{}] is {}", s, d, Helper.isIpPortMatch(s, d, HttpType.HTTPS));
} }
} }
} }
@Test
public void alarmInfoTest() {
JSONObject disposeParam = new JSONObject();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
disposeParam.set("alarmId", "1");
disposeParam.set("dstIp", "192.168.1.1");
disposeParam.set("attackType", "1");
disposeParam.set("bpspps", "bps");
disposeParam.set("dstProvince", "ZHEJIANG");
disposeParam.set("dstCity", "HANGZHOU");
disposeParam.set("startTime", sdf.format(new Date()));
// 1清洗2流控3黑洞
disposeParam.set("disposeType", 1);
disposeParam.set("disposeTime", 30);
disposeParam.set("endTime", "");
List<String> srcIp = new ArrayList<>();
srcIp.add("192.168.10.1");
srcIp.add("192.168.10.2");
disposeParam.set("srcIpLs", srcIp);
disposeParam.set("maxBps", "20bps");
disposeParam.set("maxPps", "20pps");
String jsonAlarmInfo = disposeParam.toString();
log.info("============ jsonAlarmInfo :{}", jsonAlarmInfo);
}
} }