76 lines
No EOL
2.8 KiB
Markdown
76 lines
No EOL
2.8 KiB
Markdown
# Random URL Generator
|
|
|
|
A simple, cross-platform command-line utility for generating cryptographically secure, random URLs. This project is a C# port of an original Python script, designed to provide unique, non-guessable hostnames for development and testing environments.
|
|
|
|
## Features
|
|
|
|
- **Interactive Menu**: Simple menu to select the desired server type.
|
|
- **Secure by Default**: Uses `System.Security.Cryptography.RandomNumberGenerator` for cryptographically strong randomness, equivalent to Python's `secrets` module.
|
|
- **Customizable Prefixes**: Easily generates URLs for different services (PostgreSQL, Redis, RabbitMQ, etc.).
|
|
- **Modern C#**: Written using modern C# features like top-level statements and switch expressions for clean, concise code.
|
|
- **Cross-Platform**: Runs anywhere the .NET SDK is installed (Windows, macOS, Linux).
|
|
|
|
## Purpose
|
|
|
|
In development and cloud environments, there is often a need to create temporary resources with unique hostnames. This tool solves that problem by generating random, hard-to-guess URLs, which helps:
|
|
|
|
1. **Prevent Naming Collisions**: The random string ensures each generated URL is unique.
|
|
2. **Enhance Security through Obscurity**: While not a replacement for proper authentication, a non-guessable hostname makes it harder for unauthorized users to discover or access temporary services.
|
|
|
|
## Prerequisites
|
|
|
|
To run this project, you will need the **.NET 6 SDK** or later installed on your system.
|
|
|
|
- [Download the .NET SDK](https://dotnet.microsoft.com/download)
|
|
|
|
## How to Run
|
|
|
|
1. **Clone or Download the Code**
|
|
Clone this repository to your local machine or simply download the `Program.cs` file.
|
|
|
|
```bash
|
|
git clone https://github.com/rideaware/url_gen.git
|
|
cd url_gen
|
|
```
|
|
|
|
2. **Run from the Command Line**
|
|
Navigate to the project's root directory in your terminal and use the `dotnet run` command. The .NET SDK will automatically compile and execute the application.
|
|
|
|
```bash
|
|
dotnet run
|
|
```
|
|
|
|
3. **Follow the Prompts**
|
|
The application will present you with a menu. Enter the number corresponding to your choice and press Enter.
|
|
|
|
### Example Session
|
|
|
|
```
|
|
Select a server type:
|
|
1. PostgreSQL (psql)
|
|
2. Redis (redis)
|
|
3. RabbitMQ (rabbitmq)
|
|
4. Sandbox Web Server (sandbox)
|
|
5. Staging Web Server (staging)
|
|
|
|
Enter a number (1-5) to select a server type, or 'q' to quit: 1
|
|
Generated URL: psql-4t9wz1qj.rideaware.org
|
|
|
|
Generate another URL? (y/n): y
|
|
|
|
Select a server type:
|
|
1. PostgreSQL (psql)
|
|
2. Redis (redis)
|
|
3. RabbitMQ (rabbitmq)
|
|
4. Sandbox Web Server (sandbox)
|
|
5. Staging Web Server (staging)
|
|
|
|
Enter a number (1-5) to select a server type, or 'q' to quit: 4
|
|
Generated URL: sandbox-k8m3v7b2.rideaware.org
|
|
|
|
Generate another URL? (y/n): n
|
|
```
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License. See the `LICENSE` file for details. |