guelfoweb / knock Goto Github PK
View Code? Open in Web Editor NEWKnock Subdomain Scan
License: GNU General Public License v3.0
Knock Subdomain Scan
License: GNU General Public License v3.0
Can we get a extra feature where the script tests if the ip is live or not?
When i tried to install it manually, it is gives error.
Traceback (most recent call last):
File "setup.py", line 21, in <module>
from setuptools import setup
ImportError: No module named setuptools
reducing STDOUT to only results would help reduce noise when scripting knock
Is it possible to add support Windows? Right now:
Traceback (most recent call last):
File "C:\knock3\knockpy\knockpy.py", line 19, in
from modules import core
File "C:\knock3\knockpy\modules\core.py", line 27, in
import wordlist
File "C:\knock3\knockpy\modules\wordlist.py", line 23, in
from knockpy import get_data
File "C:\knock3\knockpy\knockpy.py", line 19, in
from modules import core
ImportError: cannot import name core
Traceback (most recent call last):
File "knockpy.py", line 384, in
main()
File "knockpy.py", line 326, in main
print_output(subdomain_resolve)
File "knockpy.py", line 92, in print_output
subdomain_csv_list.append(ip_alias+','+str(data['status'])+','+'alias'+','+str(alias)+','+escape_csv(str(server_type)))
File "knockpy.py", line 75, in escape_csv
if user_generated_string[0] in ('@','+','-', '='):
IndexError: string index out of range
Hello @guelfoweb ,
Its helpful if you introduce a -t (thread) #switch to perform the task speedy.
knock# python knock.py rails.cn
Wildcard enabled
Getting NS records for rails.cn
Ip Address Server Name
114.255.140.133 dns.rails.cn
114.255.140.131 ns.rails.cn
Getting Zone Transfer
Ip Address Domain Name
114.255.140.136 home.rails.cn
114.255.140.177 rsi.rails.cn
114.255.140.163 rsd.rails.cn
114.255.140.186 pxb.rails.cn
114.255.140.179 lims.rails.cn
114.255.140.166 crh3.rails.cn
114.255.140.136 nelhsr.rails.cn
114.255.140.135 web.rails.cn
114.255.140.167 tcds.rails.cn
114.255.140.230 tjzz.rails.cn
114.255.140.186 bswb.rails.cn
114.255.140.198 uc.rails.cn
114.255.140.165 tic.rails.cn
114.255.140.134 mail.rails.cn
114.255.140.254 vpn.rails.cn
114.255.140.186 zj.rails.cn
114.255.140.134 ems.rails.cn
114.255.140.190 zixun.rails.cn
114.255.140.172 qts.rails.cn
114.255.140.174 6c.rails.cn
114.255.140.136 www.rails.cn
114.255.140.131 ns.rails.cn
114.255.140.233 usp.rails.cn
114.255.140.173 emudms.rails.cn
114.255.140.134 emailserver.rails.cn
114.255.140.140 tdm.rails.cn
114.255.140.145 simulation.rails.cn
114.255.140.164 qs.rails.cn
114.255.140.236 expo.rails.cn
114.255.140.133 dns.rails.cn
114.255.140.186 yjs.rails.cn
114.255.140.176 dw.rails.cn
Traceback (most recent call last):
File "knock.py", line 267, in
getheaders(url, "/", "GET")
File "knock.py", line 186, in getheaders
status = str(header[0])
TypeError: 'bool' object has no attribute 'getitem'
In order to have it in debian (yes, I want to package this tool), I would like to have a setup.py script, in order to use the debhelper facilities for installing the tool automagically.
Is it possible?
thanks
How to remove knockpy?
I want to reinstall knockpy
ERROR: Could not find a version that satisfies the requirement python-dnspython (from versions: none)
ERROR: No matching distribution found for python-dnspython
Traceback (most recent call last):
File "C:\Python36\Scripts\knock-4.1\knockpy\knockpy.py", line 6, in
from modules import resolve
File "C:\Python36\Scripts\knock-4.1\knockpy\modules\resolve.py", line 2, in
import header
ModuleNotFoundError: No module named 'header'
But there is a header.py in the module folder...
It would be great if you can add title of subdomains.
root@kali:/home/kali/Desktop/knock/knockpy# python3 knockpy.py google.com
File "knockpy.py", line 53
print """
| |/ / | | """+version+"""
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("""
| |/ / | | """+version+""")?
This is what is written in the first paragraph of the README.rst
"Now knockpy supports queries to VirusTotal subdomains, you can setting the API_KEY within the config.json file"
But I believe that it was supposed to be this way...
"Now knockpy supports queries to VirusTotal subdomains, you can set the API_KEY within the config.json file."
To correct that, you can simply copy the correction I made, and paste it into the README.rst replacing the wrong spelling.
Maybe these wordlists could be added as a plus to the default one:
https://github.com/theMiddleBlue/DNSenum/tree/master/wordlist
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("""
| |/ / | | """+version+""")?
Getting this error when trying to use the script. Please can we have this issue fixed?
Thanks
Via Termux (Android)
$ python knockpy.py google.com
File "knockpy.py", line 53
| |/ / | | """+version+"""
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("""
| |/ / | | """+version+""")?
#################
knockpy -h
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/bin/knockpy", line 11, in
load_entry_point('knockpy==4.1.1', 'console_scripts', 'knockpy')()
File "/data/data/com.termux/files/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/data/data/com.termux/files/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 2793, in load_entry_point
return ep.load()
File "/data/data/com.termux/files/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 2411, in load
return self.resolve()
File "/data/data/com.termux/files/usr/lib/python3.7/site-packages/pkg_resources/init.py", line 2417, in resolve module = import(self.module_name, fromlist=['name'], level=0)
File "/data/data/com.termux/files/usr/lib/python3.7/site-packages/knockpy-4.1.1-py3.7.egg/knockpy/knockpy.py", line 53
| |/ / | | """+version+"""
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("""
| |/ / | | """+version+""")?
Hi! Can you please add threads support? Thanks!
It says try pip install dnspython
So, when i run that command the result is requirement already satisfied😕. How can i make it detect dnspython any solution?!
On Centos 7 during scan server type column doesn't show. Please fix this issue.
Adding an argument to supply knock with a list of DNS servers to use from a file would help with distribution and automation
Hey this is not really an issue. Just something I came up with. If you want to ingest the results into Elasticsearch then you can use it and view the results in Kibana.
See this repo: https://github.com/timogoosen/knockpy_into_elasticsearch Thanks for great tool!
Great tool, i was wondering if there is any interest in supporting recursive brute forcing or taking a list of targets from a file/STDIN. thanks again @guelfoweb
Whenever I run this file I get :
ImportError: No module named python-dnspython
pip install dnspython
and I already have dnspython module.
How to handle this ?
Dear Team,
I am getting following issues while running the script:-
^CTraceback (most recent call last):
File "/usr/bin/knockpy", line 9, in
load_entry_point('knockpy==3.0', 'console_scripts', 'knockpy')()
File "/usr/lib/python2.7/dist-packages/knockpy/knockpy.py", line 136, in main
start(domain)
File "/usr/lib/python2.7/dist-packages/knockpy/knockpy.py", line 59, in start
core.subdomain_scan()
File "/usr/lib/python2.7/dist-packages/knockpy/modules/core.py", line 217, in subdomain_scan
result = get_target(target, False, False)
File "/usr/lib/python2.7/dist-packages/knockpy/modules/core.py", line 49, in get_target
return target.get(_target, verbose, test)
File "/usr/lib/python2.7/dist-packages/knockpy/modules/target.py", line 30, in get
result = subscan.start(target)
File "/usr/lib/python2.7/dist-packages/knockpy/modules/subscan.py", line 31, in start
Please help me out to resolve the above issues
Best Regards,
Uemsh Jore
It says try pip install dnspython
So, when i run that command the result is requirement already satisfied,confused How can i make it detect dnspython any solution?
Hey @guelfoweb ,now python2 is outdated, you should rebuild this in python3 asap. If you want i can help you in rebuilding it.
File "./setup.py", line 21, in
from setuptools import setup
ImportError: No module named setuptools
$ cd knock
$ cd knockpy
$ python knockpy.py DOMAIN.COM
well just that.. i want to know if when listing the subdomains it tells me somehow that the subdomain is vulnerable.
I think it would be good if we had a way to confirm that we want to scan when the wildcard is set on the domain, since I find that does not give much info at all...
I would really like the feature to be added that enables knockpy to be module that can be used easily or imported for example
import knock
or
from knocky import finder
or
from knock import enumerator
# Then
subdomain_list = finder("example.com")
The reason is am compiling subdomain enumeration tools to be used online here
7 Online subdomain finder
If possible can I please add this feature and the merge to main?
Thank you
Hi! Thanks for putting in the time to update the script to use python3. I appreciate it.
I've installed 5.0.0 and I tried to create a symlink to the script. However, the script doesn't resolve the "real path" on the filesystem which means that it's not possible run the script via a symlink.
Wherever the script reads files (config.json, default wordlists, etc.), update the code to use os.path.realpath().
e,g. this line from knockpy.py
could be changed from
_ROOT = os.path.abspath(os.path.dirname(__file__))
to
_ROOT = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
/Documents/software/knock/knockpy# pip install dnspython
/usr/share/python-wheels/pkg_resources-0.0.0-py3-none-any.whl/pkg_resources/py2_warn.py:21: UserWarning: Setuptools will stop working on Python 2
You are running Setuptools on Python 2, which is no longer
supported and
SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin tosetuptools<45
in your environment.
If you have done those things and are still encountering
this message, please follow up at
https://bit.ly/setuptools-py2-warning.
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see pypa/pip#5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already satisfied: dnspython in /usr/local/lib/python2.7/dist-packages/dnspython-2.0.0-py2.7.egg (2.0.0)
ERROR: Package 'dnspython' requires a different Python: 2.7.18 not in '>=3.6'
| |/ / | | 4.1.1
| ' / _ __ ___ | | ___ __ _ _
| < | ' \ / _ \ / _| |/ / ' | | | |
| . | | | | () | (| <| |) | || |
||__| ||_/ _|_|_\ ./ _, |
| | __/ |
|| |__/
Ip Address Status Type Domain Name Server
195.201.163.194 503 host dev.quizquiz.in
email
all time knock.py has stoping "email" word i had check wordlist but there is no problem at all
help me
Il procediamo di bruteforce restituisce dei falsi positivi se si utilizzano i DNS di Open DNS (credo anche Alice) poichè se un sotto dominio non esiste non viene restituito l'errore "404 - Not Found" ma si viene dirottati al motore di ricerca di OpenDNS/Google che permette di visualizzare i risultanti più attinenti all'indirizzo richiesto.
Esempio, digitando l'indirizzo 0.oversecurity.it si viene re-indirizzati al seguente sito: http://www.website-unavailable.com/main?wc=EA5qEg94AXRIAApyBAEdFxUBThAB&url=0.oversecurity.it&w=1280&h=617&ifc=0
Questo indirizzamento crea un falso positivo nella lista dei risultati: http://pastebin.com/ACEBGs8B
Anche Alice se ben ricordo offre un servizio similare, ma devo verificarlo.
Personalmente opterei per dare la possibilità all'utente di disabilitare la wordlist e creare un elenco di siti da non considerare, in questo caso website-unavailable.com.
Grazie
Andrea
Hellow ,
i wonder if we are missing a file named "Httplib" in the module section ?
thanks
I already have list of subdomains of a site, how do I use knockpy to scan those subdomain to see if they are pointing to service like heroku or amazon ?
The best support multiple domain scan
Here is the First one:
File "knockpy.py", line 53
print """
| |/ / | | """+version+"""
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("""
| |/ / | | """+version+""")?
root@Im-Sadka:/knock/knockpy# ^C/knock/knockpy# python knockpy.py www.tanda.co
root@Im-Sadka:
File "knockpy.py", line 63
print '\nIp Address\tStatus\tType\tDomain Name\t\t\tServer'
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('\nIp Address\tStatus\tType\tDomain Name\t\t\tServer')?
Second one:
File "knockpy.py", line 63
print '\nIp Address\tStatus\tType\tDomain Name\t\t\tServer'
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('\nIp Address\tStatus\tType\tDomain Name\t\t\tServer')?
root@Im-Sadka:/knock/knockpy# python knockpy.py www.tanda.co/knock/knockpy# ^C
Traceback (most recent call last):
File "knockpy.py", line 5, in
from modules import header
File "/root/knock/knockpy/modules/header.py", line 2, in
import httplib
ModuleNotFoundError: No module named 'httplib'
root@Im-Sadka:
root@Im-Sadka:~/knock/knockpy# python knockpy.py www.tanda.co
Traceback (most recent call last):
File "knockpy.py", line 4, in
from modules import httplib
ImportError: cannot import name 'httplib' from 'modules' (/root/knock/knockpy/modules/init.py)
Traceback (most recent call last):
File "/usr/local/bin/knockpy", line 11, in
load_entry_point('knockpy==4.1.1', 'console_scripts', 'knockpy')()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 480, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2693, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2324, in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2330, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/local/lib/python3.6/dist-packages/knockpy-4.1.1-py3.6.egg/knockpy/knockpy.py", line 53
| |/ / | | """+version+"""
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("""
| |/ / | | """+version+""")?
Hello when I try to resolve any domain using knockpy -r the error appeared that virustotal API key not found while I already configured my virustotal API key in config.json file. What issue?
Hi Gianni, can you please fix this error?
byte-compiling /home/locutus/branches/ongoing/knock/debian/python3-knockpy/usr/lib/python3.4/dist-packages/knockpy/modules/wordlist.py to wordlist.cpython-34.pyc
File "/usr/lib/python3.4/dist-packages/knockpy/modules/wordlist.py", line 37
print font.color('red')+'\nwarning: wordlist not found '+local_wlist+font.color('end')
^
SyntaxError: invalid syntax
byte-compiling /home/locutus/branches/ongoing/knock/debian/python3-knockpy/usr/lib/python3.4/dist-packages/knockpy/modules/core.py to core.cpython-34.pyc
File "/usr/lib/python3.4/dist-packages/knockpy/modules/core.py", line 67
print headers.target(domain)
^
SyntaxError: invalid syntax
also the setup file line 62 should mention python3.
thanks
cloned the git repo
ran sudo python setup.py install
running install
Checking .pth file support in /usr/local/lib/python2.7/dist-packages/
/usr/bin/python -E -c pass
TEST PASSED: /usr/local/lib/python2.7/dist-packages/ appears to support .pth files
running bdist_egg
running egg_info
creating knockpy.egg-info
writing requirements to knockpy.egg-info/requires.txt
writing knockpy.egg-info/PKG-INFO
writing top-level names to knockpy.egg-info/top_level.txt
writing dependency_links to knockpy.egg-info/dependency_links.txt
writing entry points to knockpy.egg-info/entry_points.txt
writing manifest file 'knockpy.egg-info/SOURCES.txt'
reading manifest file 'knockpy.egg-info/SOURCES.txt'
writing manifest file 'knockpy.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/knockpy
copying knockpy/knockpy.py -> build/lib.linux-x86_64-2.7/knockpy
copying knockpy/__init__.py -> build/lib.linux-x86_64-2.7/knockpy
creating build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/wildcard.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/zonetransfer.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/headers.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/subscan.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/wordlist.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/stats.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/utilipy.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/getheader.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/core.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/__init__.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/target.py -> build/lib.linux-x86_64-2.7/knockpy/modules
copying knockpy/modules/font.py -> build/lib.linux-x86_64-2.7/knockpy/modules
creating build/lib.linux-x86_64-2.7/knockpy/wordlist
copying knockpy/wordlist/wordlist.txt -> build/lib.linux-x86_64-2.7/knockpy/wordlist
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/knockpy
copying build/lib.linux-x86_64-2.7/knockpy/knockpy.py -> build/bdist.linux-x86_64/egg/knockpy
creating build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/wildcard.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/zonetransfer.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/headers.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/subscan.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/wordlist.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/stats.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/utilipy.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/getheader.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/core.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/__init__.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/target.py -> build/bdist.linux-x86_64/egg/knockpy/modules
copying build/lib.linux-x86_64-2.7/knockpy/modules/font.py -> build/bdist.linux-x86_64/egg/knockpy/modules
creating build/bdist.linux-x86_64/egg/knockpy/wordlist
copying build/lib.linux-x86_64-2.7/knockpy/wordlist/wordlist.txt -> build/bdist.linux-x86_64/egg/knockpy/wordlist
copying build/lib.linux-x86_64-2.7/knockpy/__init__.py -> build/bdist.linux-x86_64/egg/knockpy
byte-compiling build/bdist.linux-x86_64/egg/knockpy/knockpy.py to knockpy.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/wildcard.py to wildcard.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/zonetransfer.py to zonetransfer.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/headers.py to headers.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/subscan.py to subscan.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/wordlist.py to wordlist.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/stats.py to stats.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/utilipy.py to utilipy.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/getheader.py to getheader.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/core.py to core.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/target.py to target.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/modules/font.py to font.pyc
byte-compiling build/bdist.linux-x86_64/egg/knockpy/__init__.py to __init__.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying knockpy.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying knockpy.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying knockpy.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying knockpy.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying knockpy.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying knockpy.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
knockpy.__init__: module references __file__
knockpy.modules.wordlist: module references __file__
creating dist
creating 'dist/knockpy-3.0-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing knockpy-3.0-py2.7.egg
creating /usr/local/lib/python2.7/dist-packages/knockpy-3.0-py2.7.egg
Extracting knockpy-3.0-py2.7.egg to /usr/local/lib/python2.7/dist-packages
Adding knockpy 3.0 to easy-install.pth file
Installing knockpy script to /usr/local/bin
Installed /usr/local/lib/python2.7/dist-packages/knockpy-3.0-py2.7.egg
Processing dependencies for knockpy==3.0
Searching for dnspython==1.10.0
Best match: dnspython 1.10.0
Adding dnspython 1.10.0 to easy-install.pth file
Using /usr/lib/python2.7/dist-packages
Finished processing dependencies for knockpy==3.0
Time to play...
geeknik@a1b2c3d4:~/knock$ knockpy domain.com
ImportError: No module named dnspython
install python-dnspython
Wait, what?
geeknik@a1b2c3d4:~/knock$ dpkg --list | grep dnspython
ii python-dnspython 1.10.0-1 all DNS toolkit for Python
adding Tor Socks will be amazing :D
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.