Initial meep
This commit is contained in:
parent
0852c2f0e9
commit
abdea7e57b
5 changed files with 67 additions and 0 deletions
1
requirements.txt
Normal file
1
requirements.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
flask
|
21
utils/app.py
Normal file
21
utils/app.py
Normal 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
16
utils/generate.py
Normal 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
15
utils/templates/index.j2
Normal 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
14
utils/templates/result.j2
Normal 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>
|
Loading…
Add table
Reference in a new issue