IpCheckController.java
2.02 KB
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
package com.canrd.webmagic.controller;
import com.canrd.webmagic.common.constant.ServerResult;
import com.canrd.webmagic.domain.dto.IpDO;
import com.canrd.webmagic.service.IpService;
import com.canrd.webmagic.util.PingUtil;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@RestController
@RequestMapping("/ip")
@Api("Ip-Check")
public class IpCheckController {
@Resource
private IpService ipService;
@GetMapping("/getIpById/{id}")
public ServerResult getIpById(@PathVariable int id){
IpDO ip = ipService.getById(id);
return ServerResult.success(ip);
}
@GetMapping("/getIps")
public ServerResult getIps(){
List<IpDO> ipList = ipService.findAll();
return ServerResult.success(ipList);
}
@GetMapping("/checkIps")
public ServerResult checkIps(){
List<IpDO> ipList = ipService.findAll();
AtomicInteger error= new AtomicInteger();
AtomicInteger success= new AtomicInteger();
ipList.forEach(ip-> {
if (!PingUtil.ping(ip.getIp(),4,3000)) {
ip.setIsUse(1);
ip.setDetectionTime(new Date());
ipService.updateById(ip);
error.addAndGet(1);
}else {
success.addAndGet(1);
}
});
String mes ="本次检测,存活ip数为"+success+",失活ip数为"+error;
return ServerResult.success(mes);
}
@GetMapping("/randomIp")
public ServerResult randomIp(){
List<IpDO> ip = ipService.findAll();
int size = ip.size();
int ran = (int) (Math.random() * size-1);
IpDO ipDO = ip.get(ran);
return ServerResult.success(ipDO);
}
}