Initial meep

This commit is contained in:
Nyx 2025-03-22 03:18:19 -05:00
parent 0852c2f0e9
commit abdea7e57b
5 changed files with 67 additions and 0 deletions

1
requirements.txt Normal file
View file

@ -0,0 +1 @@
flask

21
utils/app.py Normal file
View file

@ -0,0 +1,21 @@
from flask import request, redirect, session, render_template, send_from_directory, Flask, url_for
import generate
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
subnet = request.form['subnet']
ip = generate.generate_ip(subnet)
return redirect(url_for('result', ip=ip))
return render_template('index.j2')
@app.route('/result')
def result():
ip = request.args.get('ip')
return render_template('result.j2', result=ip)
if __name__ == '__main__':
app.run(debug=True)

16
utils/generate.py Normal file
View file

@ -0,0 +1,16 @@
#!/usr/bin/env python3
"""
Generate a random IPv6 address for a specified subnet
"""
from random import seed, getrandbits
from ipaddress import IPv6Network, IPv6Address
def generate_ip(subnet):
subnet = subnet
seed()
network = IPv6Network(subnet)
address = IPv6Address(network.network_address + getrandbits(network.max_prefixlen - network.prefixlen))
return address

15
utils/templates/index.j2 Normal file
View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<head>
<title>Utilities</title>
</head>
<body>
<h1>IPv6 generator</h1>
<form method="POST">
<input type="text" name="subnet" size="10" placeholder="IPv6 subnet" />
<button type="submit">generate</button>
</form>
<footer>
<hr />
<a href="https://git.everypizza.im/n/utils">source code</a> | version 0.0.1
</footer>
</body>

14
utils/templates/result.j2 Normal file
View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<head>
<title>Utilities</title>
</head>
<body>
<h1>Result for {{ action }}</h1>
<p>
{{ result }}
</p>
<footer>
<hr />
<a href="/">← back home</a>
</footer>
</body>