grabowskiadrian / WhatsMyName-Client

External tool for WebBreacher/WhatsMyName project. Client supports 'request headers' and POST requests. The script was prepared not only to search for a user with a given username but also to test newly added pages to the database.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WhatsMyName-Client (WMNC)

This is external tool for: https://github.com/WebBreacher/WhatsMyName/

While attempting to develop the WhatsMyName project, I encountered several issues. Other available tools did not handle http-headers or POST requests. That's why I wrote my own script implementing the principles of WhatsMyName.

My version of the client supports 'request headers' and POST requests. I tried to follow all the guidelines provided in the wmn-data-schema.json file (https://github.com/WebBreacher/WhatsMyName/blob/main/CONTRIBUTING.md#format-of-the-json-file).

The script was prepared not only to search for a user with a given username but also to test newly added pages to the database.

Feel free to use this script; it's open-source, so that's exactly why it was made available!

Installation

git clone https://github.com/grabowskiadrian/whatsmyname-client.git
cd WhatsMyName-Client
pip3 install -r requirments.txt

python3 wmnc.py update
python3 wmnc.py

Usage

WMNC (WhatsMyName-Client) is a command-line tool with the following commands:

$ python3 wmnc.py

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░▒█░░▒█░█░░░░█▀▀▄░▀█▀░█▀▀░▒█▀▄▀█░░░░░░▒█▄░▒█░█▀▀▄░█▀▄▀█░█▀▀░
░▒█▒█▒█░█▀▀█░█▄▄█░░█░░▀▀▄░▒█▒█▒█░█▄▄█░▒█▒█▒█░█▄▄█░█░▀░█░█▀▀░
░▒▀▄▀▄▀░▀░░▀░▀░░▀░░▀░░▀▀▀░▒█░░▒█░▄▄▄▀░▒█░░▀█░▀░░▀░▀░░▒▀░▀▀▀░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░▒█▀▀▄░█░░░▀░░█▀▀░█▀▀▄░▀█▀░░░░░    WhatsMyName-Client   ░░░░
░▒█░░░░█░░░█▀░█▀▀░█░▒█░░█░░░░░░ v0.1 by grabowskiadrian ░░░░
░▒█▄▄▀░▀▀░▀▀▀░▀▀▀░▀░░▀░░▀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Look: https://github.com/WebBreacher/WhatsMyName

usage: python3 wmnc.py COMMAND [-h]

Commands:
  update           Download the newest version of wmn-data.json from the official GitHub repository.
  find USERNAME    Search for a specific USERNAME across all websites in the Project WhatsMyName database (wmn-data.json).

Development:
  list-sites       List all websites from the wmn-data.json file.
  list-categories  List all website categories from the wmn-data.json file.
  test             Run tests on websites to verify that the website configuration is correct.

Each command supports various options, which can be displayed by using the -h or --help flag.

Examples for Searchers

Update the local database

python3 wmnc.py update

Output:

$ python3 wmnc.py update

[+] wmn-data.json updated
[+] wmn-data-schema.json updated

Search for a Username

To search for a specific username across all websites in the database, use the find command:

python3 wmnc.py find username-to-find

For example:

python3 wmnc.py find grabowskiadrian

You can use several parameters to limit the scope of the search:

To search only on one website use flag -s or --site:

python3 wmnc.py find grabowskiadrian -s bitbucket.com

To search only in one category use flag -c or --category:

python3 wmnc.py find grabowskiadrian -c social

You can also use -l or --list flag to pass path to your own .json file

python3 wmnc.py find grabowskiadrian -c social -l /path/to/my-list.json

Output:

$ python3 wmnc.py find adriangrabowski4

...
[+] Checking cda.pl : Found : https://www.cda.pl/adriangrabowski4
[-] Checking cfx.re : Not found
[-] Checking championat : Not found
[-] Checking Mastodon-Chaos.social : Not found
[-] Checking chaturbate : Not found
[-] Checking cHEEZburger : Not found
[-] Checking Chamsko : Not found
[-] Checking Chess.com : Not found
[+] Checking Chomikuj.pl : Found : https://chomikuj.pl/adriangrabowski4/
[+] Checking DockerHub : Found : https://hub.docker.com/v2/users/adriangrabowski4/
...

Examples for Contributors of WhatsMyName

List all websites

To list all websites in the database file, use the following command:

python3 wmnc.py list-sites

Output:

$ python3 wmnc.py list-sites  
         
|====================================================|======================|
| Site Name                                          | Category             |
|====================================================|======================|
| Mastodon-101010.pl                                 | social               |
| 1001mem                                            | social               |
| 3DNews                                             | social               |
| 247sports                                          | hobby                |
| 35photo                                            | social               |
| 3dtoday                                            | hobby                |
...
...
...
...
|====================================================|======================|
| Total                                              | 630                  |
|====================================================|======================|

If you're working on your own list of websites, you can pass -l or --list parameter to test your own .json file.

python3 wmnc.py list-sites -l /path/to/my-list.json

List Website Categories

To list website categories and the number of websites in each category, run the following command:

python3 wmnc.py list-categories

Output:

$ python3 wmnc.py list-categories
|====================================================|======================|
| Category                                           | Sites count          |
|====================================================|======================|
| social                                             | 195                  |
| hobby                                              | 46                   |
| coding                                             | 31                   |
| xx NSFW xx                                         | 43                   |
| finance                                            | 23                   |
| misc                                               | 35                   |
| blog                                               | 16                   |
| political                                          | 13                   |
| gaming                                             | 47                   |
| tech                                               | 29                   |
| art                                                | 14                   |
| music                                              | 18                   |
| business                                           | 23                   |
| health                                             | 13                   |
| shopping                                           | 23                   |
| news                                               | 9                    |
| video                                              | 11                   |
| images                                             | 24                   |
| dating                                             | 13                   |
| archived                                           | 4                    |
|====================================================|======================|
| Total                                              | 630                  |
|====================================================|======================|

If you're working on your own list of websites, you can pass -l or --list parameter to test your own .json file.

python3 wmnc.py list-categories -l /path/to/my-list.json

Test wmn-data.json file

You can test websites to verify their configurations using the test command.

For example, to test a specific website by name, use:

python3 wmnc.py test -s github.com

To test specific category, use:

python3 wmnc.py test -c social

You can pass -l or --list parameter to test your own .json file

python3 wmnc.py test -c social -l /path/to/my-list.json

To test all websites, use:

python3 wmnc.py test

A check is performed for each website. This testing process evaluates whether the responses defined for the found user and user not found cases are correct. This allows you to verify that previously defined pages still work as expected.

Output:

$ python3 wmnc.py test

| Site name                                          | User found                      | User not found                  |
|====================================================|=================================|=================================|
| Mastodon-101010.pl                                 | PASSED                          | PASSED                          |
| 1001mem                                            | PASSED                          | PASSED                          |
| 3DNews                                             | PASSED                          | PASSED                          |
| 247sports                                          | PASSED                          | PASSED                          |
| 35photo                                            | PASSED                          | PASSED                          |
| 3dtoday                                            | PASSED                          | PASSED                          |
| 7cup                                               | PASSED                          | PASSED                          |
| 7dach                                              | PASSED                          | PASSED                          |
| 21buttons                                          | PASSED                          | PASSED                          |
| aaha_chat                                          | NOT PASSED                      | ???                             |
| about.me                                           | PASSED                          | PASSED                          |
| ACF                                                | PASSED                          | PASSED                          |
| admire_me                                          | PASSED                          | PASSED                          |
| Adult_Forum                                        | PASSED                          | PASSED                          |
| adultism                                           | PASSED                          | PASSED                          |
| ADVFN                                              | PASSED                          | PASSED                          |

License

I am a regular contributor to the Project WhatsMyName, but I am not officially part of its creation. Check WhatsMyName project for more details: https://github.com/WebBreacher/WhatsMyName

About

External tool for WebBreacher/WhatsMyName project. Client supports 'request headers' and POST requests. The script was prepared not only to search for a user with a given username but also to test newly added pages to the database.


Languages

Language:Python 100.0%