├── uteis
├── m.png
├── banner.txt
└── apis.txt
├── update.sh
├── LICENSE
├── README.md
├── main.py
└── consus.py
/uteis/m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gabrielmatos0/spynel/HEAD/uteis/m.png
--------------------------------------------------------------------------------
/update.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | rm -rf spynel
3 | git clone https://github.com/Spyware0/spynel
4 | rm -rf update.sh
5 | cd spynel
6 | python main.py
7 |
--------------------------------------------------------------------------------
/uteis/banner.txt:
--------------------------------------------------------------------------------
1 | _____ ____ __ __ _ __ ______ __
2 | / ___/ / __ \ \ \/ / / | / / / ____/ / /
3 | \__ \ / /_/ / \ / / |/ / / __/ / /
4 | ___/ / / ____/ / / / /| / / /___ / /___
5 | /____/ /_/ /_/ /_/ |_/ /_____/ /_____/
6 |
--------------------------------------------------------------------------------
/uteis/apis.txt:
--------------------------------------------------------------------------------
1 | https://ipwhois.app/json/{ip}
2 |
3 | https://api.ipfind.com/?ip={ip}
4 |
5 | https://ipinfo.io/{ip}/json
6 |
7 | https://viacep.com.br/ws/{cep}/json
8 |
9 | https://api.postmon.com.br/v1/cep/{cep}
10 |
11 | https://www.receitaws.com.br/v1/cnpj/{cnpj}
12 |
13 | https://apicarros.com/v1/consulta/{placa}
14 |
15 | https://brasilapi.com.br/api/ddd/v1/{ddd}
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Spyware
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Spynel
4 |
5 | 
6 |
7 | Um pequeno painel com consultas de:
8 | - [x] IP
9 | - [x] CEP
10 | - [x] PLACA
11 | - [x] CNPJ
12 | - [x] DDD
13 |
14 | - OBS: caso execute o script pelo termux, recomendo que use o da [F-Droid](https://f-droid.org) por ser mais atualizado, evitando erros indesejáveis...
15 |
16 | Uxecute-o em terminais linux e utilize o python3.10
17 |
18 | INÍCIO 💻
19 |
20 | ```shell script
21 | apt-get update && apt-get upgrade -y
22 | apt-get -y install git python3.10
23 | pip install requests
24 | ```
25 |
26 | INSTALAÇÃO E EXECUÇÃO 📥
27 |
28 | ```shell script
29 | git clone https://github.com/Spyware0/spynel
30 | cd spynel
31 | python main.py
32 | ```
33 |
34 | Para mais informações, acesse [Whatsapp](http://wa.me/559885267746)!
35 |
36 | Deixe sua estrelinha ;)
37 |
38 |
39 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | from os import system
2 | try:
3 | from requests import get
4 | except:
5 | system('pip install requests')
6 | from random import choice
7 | from consus import *
8 |
9 | banner = open('uteis/banner.txt').read()
10 | cores = verm, verd, amar, azul, cian, roxo
11 |
12 | while True:
13 | cls()
14 | c = choice(cores)
15 | print(c+banner+f)
16 | try:
17 | opc = input(f'{n}[ {c}1{n} ] > {c}IP{n} ({verd}ON{n})\n[ {c}2{n} ] > {c}CEP{n} ({verd}ON{n})\n[ {c}3{n} ] > {c}PLACA{n} ({verd}ON{n})\n[ {c}4{n} ] > {c}CNPJ{n} ({verd}ON{n})\n[ {c}5{n} ] > {c}DDD{n} ({verd}ON{n})\n\n[ {c}S{n} ] > {c}SAIR{n}\n[ {c}A{n} ] > {c}ATUALIZAR\n\n>>>{n} ').strip().lower()[0]
18 | except: continue
19 |
20 | match opc:
21 | case '1':
22 | while True:
23 | cls()
24 | try:
25 | opc = input(f'{n}[ {c}1{n} ] > {c}IP WHOIS{n}\n[ {c}2{n} ] > {c}IP FIND{n}\n[ {c}3{n} ] > {c}IP INFO{n}\n[ {c}4{n} ] > {c}MEU IP{n}\n\n[ {c}0{n} ] > {c}SAIR\n\n>>>{n} ').strip()[0]
26 | except: continue
27 | IP = str()
28 | if not opc in '12340': continue
29 | if opc == '0': break
30 | elif opc != '4':
31 | try:
32 | IP = input('(ex: 170.0.10.69)\nIP: ').strip()
33 | except: continue
34 | ip(IP, opc)
35 | ent()
36 |
37 | case '2':
38 | while True:
39 | cls()
40 | try:
41 | opc = input(f'{n}[ {c}1{n} ] > {c}VIA CEP{n}\n[ {c}2{n} ] > {c}POSTMON CEP{n}\n\n[ {c}0{n} ] > {c}SAIR\n\n>>>{n} ').strip()[0]
42 | except: continue
43 | if not opc in '120': continue
44 | if opc == '0': break
45 | try:
46 | CEP = input('(ex: 23555240)\nCEP: ').strip()
47 | except: continue
48 | cep(CEP, opc)
49 | ent()
50 |
51 | case '3':
52 | cls()
53 | try:
54 | plc = input('OBS: a api de carros tem limite de consulta por tempo,\nentão espere um pouco caso dê "limite de consultas atingido"\n(ex: hqc5669)\nPLACA: ').strip().lower()
55 | except: continue
56 | placa(plc)
57 | ent()
58 |
59 | case '4':
60 | try:
61 | cn = input('(ex: 47960950000121)\nCNPJ: ').strip()
62 | except: continue
63 | cls()
64 | cnpj(cn)
65 | ent()
66 |
67 | case '5':
68 | try:
69 | d = input('(ex: 31)\nDDD: ').strip()[:2]
70 | except: continue
71 | cls()
72 | ddd(d)
73 | ent()
74 |
75 | case 's': break
76 |
77 | case 'a':
78 | system('mv update.sh ../ && cd - && bash update.sh')
79 | cls()
80 | print(c+'Volte sempre!'+f)
81 |
--------------------------------------------------------------------------------
/consus.py:
--------------------------------------------------------------------------------
1 | from requests import get
2 | from os import system
3 |
4 | f = '\033[m'
5 | verm = '\033[31;1m'
6 | verd = '\033[32;1m'
7 | amar = '\033[33;1m'
8 | azul = '\033[34;1m'
9 | cian = '\033[35;1m'
10 | roxo = '\033[36;1m'
11 | n = '\033[37;1m'
12 |
13 | def cls():
14 | system('clear')
15 |
16 |
17 | def ent():
18 | input('\nenter para continuar')
19 |
20 |
21 | def ip(ip='', option=''):
22 | match option:
23 | case '1':
24 | req = get(f'https://ipwhois.app/json/{ip}').json()
25 | for k, v in req.items():
26 | print(f'{verd}{k}{n}: {v}')
27 | case '2':
28 | req = get(f'https://api.ipfind.com/?ip={ip}').json()
29 | for k, v in req.items():
30 | print(f'{verd}{k}{n}: {v}')
31 | case '3':
32 | req = get(f'https://ipinfo.io/{ip}/json').json()
33 | for k, v in req.items():
34 | print(f'{verd}{k}{n}: {v}')
35 | case '4':
36 | req = get(f'https://ipinfo.io/what-is-my-ip').json()
37 | for k, v in req.items():
38 | print(f'{verd}{k}{n}: {v}')
39 |
40 |
41 | def cep(cep='', option=''):
42 | match option:
43 | case '1':
44 | req = get(f'https://viacep.com.br/ws/{cep}/json').json()
45 | for k, v in req.items():
46 | print(f'{verd}{k}{n}: {v}')
47 | case '2':
48 | req = get(f'https://api.postmon.com.br/v1/cep/{cep}').json()
49 | for k, v in req.items():
50 | if type(v) == dict:
51 | for ch, vl in v.items():
52 | print(f'\t{verd}{ch}{n}: {vl}')
53 | else:
54 | print(f'{verd}{k}{n}: {v}')
55 |
56 |
57 | def placa(plc=''):
58 | req = get(f'https://apicarros.com/v1/consulta/{placa}', verify=False).json()
59 | co = 0
60 | for k, v in req.items():
61 | if co == 0: cls()
62 | print(f'{verd}{k}{n}: {v}')
63 | co += 1
64 |
65 |
66 | def cnpj(cn=''):
67 | req = get(f'https://www.receitaws.com.br/v1/cnpj/{cn}').json()
68 | for k, v in req.items():
69 | if type(v) == dict:
70 | for ch, vl in v.items():
71 | print(f'\t{verd}{ch}{n}: {vl}')
72 | elif type(v) == list:
73 | for its in v:
74 | for ch, vl in its.items():
75 | print(f'\t{verd}{ch}{n}: {vl}')
76 | else:
77 | print(f'{verd}{k}{n}: {v}')
78 |
79 |
80 | def ddd(d=''):
81 | req = get(f'https://brasilapi.com.br/api/ddd/v1/{d}').json()
82 | for k, v in req.items():
83 | if type(v) == list:
84 | print(verd+k+n+':')
85 | for s in v:
86 | print(s)
87 | else:
88 | print(f'{verd}{k}{n}: {v}')
89 |
--------------------------------------------------------------------------------