sundowndev / phoneinfoga

Information gathering framework for phone numbers
https://sundowndev.github.io/phoneinfoga/
GNU General Public License v3.0
12.55k stars 3.48k forks source link

[RFC] New scanner interface #967

Open sundowndev opened 2 years ago

sundowndev commented 2 years ago

This issue is a RFC about major architectural changes in the upcoming next versions of PhoneInfoga.

Context

It's been a while that PhoneInfoga stopped working properly due to scraping limitations. I knew since the beginning that this project couldn't work without constant maintenance. The goal of this new version is to bring a new set of features to the existing project and stop relying on scraping to gather information about phone numbers.

High-level roadmap

That means the tool will no longer rely on free resources and the user will need to specify one or more API keys in order to use the tool. Each scanner will become optional so the user can choose which one should be used in a scan.

Usage examples :

# numverify scanner is disabled
$ phoneinfoga scan +3367823xxxx --ignore numverify

# A plugin is used for this scan
$ phoneinfoga scan +3367823xxxx --plugin ./custom_scanner.so

# numverify scanner is enabled, format is JSON, send output to a file
$ NUMVERIFY_API_KEY=<key> phoneinfoga scan +3367823xxxx -f json -o result.json

Definitions

Backward compatibility

We MUST break as less as possible so consider the following :

Scanners

This is a non-exhaustive list of scanners we could implement in the future. Each of them still requires its own investigation to better understand how it works and how it can bring value to Phoneinfoga users. Some scanners may require a rate-limiting mechanism (e.g. Pipl).

References

Social medias: Facebook, Twitter, Weibo, TikTok, Instagram, LinkedIn, VK, Snapchat, YouTube, Periscope Search engines: Google, DuckDuckGo, Yandex, Bing, Yahoo, wayback machine, archive.ph

Robertrabbit commented 2 years ago

🐇