Overview
The Phone Number Search tool uses Ignorant to check if a phone number is registered on various online platforms and services. This tool helps investigators identify social media accounts, messaging apps, and online services linked to a specific phone number.Ignorant queries multiple platforms including WhatsApp, Telegram, Signal, Snapchat, Instagram, and other services that use phone numbers for registration.
How It Works
The tool uses an asynchronous implementation to query multiple platforms simultaneously, significantly improving performance compared to sequential checks.Technical Implementation
FromPhoneSearch/views.py:10-29:
Asynchronous Search Engine
FromPhoneSearch/tasks.py:59-90:
Usage
Format Phone Number
Enter the phone number in the format:
COUNTRY_CODE PHONE_NUMBERExamples:1 5551234567(USA)44 2071234567(UK)521 5534123456(Mexico mobile)86 13812345678(China)
The country code should be numeric only (1-999) and the phone number must be at least 6 digits.
Execute Search
Click search to initiate the asynchronous query across all platforms. The tool will:
- Dynamically load Ignorant modules
- Query platforms concurrently
- Handle rate limiting gracefully
- Return results in real-time
Phone Number Validation
The tool performs strict validation on input: FromPhoneSearch/forms.py:21-53:
Validation Rules
Numeric country calling code (1-999)Examples: 1 (USA/Canada), 44 (UK), 86 (China), 521 (Mexico Mobile)
Phone number with minimum 6 digits (spaces allowed, will be stripped)
Dynamic Module Import
Ignorant’s modules are imported dynamically at runtime: FromPhoneSearch/tasks.py:31-56:
- Loads all available Ignorant modules
- Supports custom module additions
- Handles missing modules gracefully
- Enables extensibility
HTTP Client Configuration
The async client is configured for optimal performance:Performance Settings
Maximum time in seconds to wait for each platform response
Maximum number of concurrent HTTP connections
Number of connections to keep alive for reuse
Result Structure
Each result contains:Statistics Calculation
FromPhoneSearch/views.py:32-48:
API Endpoints
Defined inPhoneSearch/urls.py:
| Endpoint | View Function | Purpose |
|---|---|---|
/search/ | search_phone | Async search form and results |
Unlike other tools, Phone Search combines the form and results in a single async view for better performance.
Celery Integration
The tool includes optional Celery task support for background processing: FromPhoneSearch/tasks.py:11-28:
- Background job processing
- Automatic retries on failure
- Distributed task execution
- Better scalability for high-volume searches
Error Handling
Per-platform error handling:Supported Platforms
Ignorant checks phone numbers on:Messaging Apps
- Telegram
- Signal
- Viber
- Line
Social Media
- Snapchat
- Twitter (phone lookup)
Other Services
- Dating apps
- Shopping platforms
- Regional services
- Verification services
The exact list of platforms depends on the installed version of Ignorant and its module database.
Use Cases
Investigation
- Identify social media profiles linked to phone numbers
- Verify identity claims
- Correlate phone numbers across platforms
Security Research
- Test phone number exposure
- Assess privacy leakage
- Identify information disclosure
OSINT Operations
- Map digital footprint from phone number
- Cross-reference with other intelligence
- Build subject profiles
Fraud Prevention
- Verify account legitimacy
- Detect disposable numbers
- Identify suspicious patterns
Performance Characteristics
Asynchronous Benefits
- Concurrent Queries: All platforms checked simultaneously
- Reduced Latency: No sequential bottleneck
- Better Throughput: Handles multiple searches efficiently
- Timeout Isolation: One slow platform doesn’t block others
Timing
- Average Search: 30-60 seconds
- Per-Platform Timeout: 30 seconds
- Concurrent Platforms: 10 simultaneous connections
- Total Search Time: Limited by slowest platform
Rate Limiting
Privacy & Legal Considerations
Limitations
- False Positives: Common phone formats may trigger matches
- False Negatives: Privacy settings may hide registrations
- Rate Limiting: Aggressive checks may trigger blocks
- Platform Changes: APIs and detection methods change frequently
- Regional Availability: Some services are region-specific
- Accuracy: Cannot verify if number is still active
- Carrier Info: Does not provide carrier or SIM details
Troubleshooting
Ignorant Not Found
If module import fails:All Results Show Rate Limited
If every platform returns rate limit:- Wait 15-30 minutes before retrying
- Check if IP is blocked
- Consider using VPN or proxy
- Reduce search frequency
No Results Found
If legitimate number returns no results:- Verify country code is correct
- Ensure phone number is complete
- Check if number is active
- Verify Ignorant modules are up to date
Async Errors
If encountering async-related errors:- Ensure Django 3.1+ with ASGI support
- Verify httpx is installed:
pip install httpx - Check server supports async views
Country Code Reference
Common Country Codes
| Code | Country/Region |
|---|---|
| 1 | USA, Canada |
| 7 | Russia, Kazakhstan |
| 20 | Egypt |
| 27 | South Africa |
| 30 | Greece |
| 31 | Netherlands |
| 32 | Belgium |
| 33 | France |
| 34 | Spain |
| 39 | Italy |
| 40 | Romania |
| 41 | Switzerland |
| 43 | Austria |
| 44 | United Kingdom |
| 45 | Denmark |
| 46 | Sweden |
| 47 | Norway |
| 48 | Poland |
| 49 | Germany |
| 51 | Peru |
| 52 | Mexico (521 for mobile) |
| 53 | Cuba |
| 54 | Argentina |
| 55 | Brazil |
| 56 | Chile |
| 57 | Colombia |
| 58 | Venezuela |
| 60 | Malaysia |
| 61 | Australia |
| 62 | Indonesia |
| 63 | Philippines |
| 64 | New Zealand |
| 65 | Singapore |
| 66 | Thailand |
| 81 | Japan |
| 82 | South Korea |
| 84 | Vietnam |
| 86 | China |
| 90 | Turkey |
| 91 | India |
| 92 | Pakistan |
| 93 | Afghanistan |
| 94 | Sri Lanka |
| 95 | Myanmar |
| 98 | Iran |
Some countries have different codes for mobile vs. landline (e.g., Mexico uses 52 for landlines and 521 for mobile).
