Skip to content

iqbalmh18/pyident

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyIdent

PyIdent is a simple Python package developed to generate personalized identifiers, including email addresses, usernames, and wordlists, based on first and last name combinations. It is designed for both programmatic library usage and command-line execution.

Features

  • Custom Identifier Generation: Create usernames and full names using multiple configurable patterns.
  • Email Generation: Generate email addresses from combinations with custom domain support.
  • Wordlist Generation: Produce extensive wordlists using name parts, years, days, months, and custom suffixes.
  • JSON Output: Support for structured JSON output for easy integration with other tools.
  • CLI and Module Support: Run directly as an installed command or via python -m pyident.

Installation

Local Installation

Clone the repository and install the package using pip:

git clone https://github.com/iqbalmh18/pyident.git
cd pyident
pip install .

Development Installation

For development and live testing:

pip install -e .

Usage

Command-Line Interface (CLI)

Once installed, the pyident command will be available.

Generate Usernames (Default)

pyident "John" "Doe" -n 10

Generate Email Addresses

Generate email addresses with custom domains:

pyident "John" "Doe" -t email -d gmail.com yahoo.com -n 5

Generate Wordlists

Create a complex wordlist for security testing or data normalization:

pyident "John" "Doe" -t wordlist --start-year 1990 --end-year 2000 --capitalize -n 20

JSON Output

Redirect results as a JSON array:

pyident "John" "Doe" -t username --json > users.json

Running as a Module

If you prefer not to install the package, or for cross-environment consistency, run it as a Python module:

python3 -m pyident "John" "Doe" -t email -n 5

Library Integration

You can import PyIdent in your scripts to leverage the generation logic programmatically.

from pyident import PyIdent

# Initialize with name and optional domains
ident = PyIdent(firstname="John", last_name="Doe", domain_name=["example.com"], max_results=100)

# Generate list of usernames
usernames = ident.generate_username(max_results=10)
for user in usernames:
    print(user['username'])

# Generate a wordlist
wordlist = ident.generate_wordlist(capitalize=True, max_results=50)
print(wordlist)

Command Parameters

Argument Shorthand Description Default
firstname - Required. The first name to use for generation. -
lastname - Optional. The last name to use for generation. ""
--type -t Result type: email, username, fullname, wordlist. username
--max-results -n Maximum number of results to generate. 100
--domains -d Domain names for email generation. gmail.com, yahoo.com, outlook.com
--json - Format output as a JSON object. False
--start-year - Start year for wordlist generation. 1995
--end-year - End year for wordlist generation. 2007
--capitalize - Capitalize all generated words in wordlist. False
--no-extend - Disable the default combination set for wordlists. True

License

This project is licensed under the MIT License. Refer to the pyproject.toml for more metadata.

About

Python package to generate identifiers like emails, usernames, and wordlists.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages