lanscape 1.2.8a1__tar.gz → 1.2.8a3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lanscape-1.2.8a1/src/lanscape.egg-info → lanscape-1.2.8a3}/PKG-INFO +2 -4
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/README.md +1 -3
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/pyproject.toml +1 -1
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/version_manager.py +3 -1
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/app.py +0 -2
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/main.py +16 -5
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/css/style.css +8 -1
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/base.html +7 -2
- {lanscape-1.2.8a1 → lanscape-1.2.8a3/src/lanscape.egg-info}/PKG-INFO +2 -4
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/LICENSE +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/MANIFEST.in +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/setup.cfg +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/__init__.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/__main__.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/app_scope.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/decorators.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/errors.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/ip_parser.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/logger.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/mac_lookup.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/net_tools.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/port_manager.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/runtime_args.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/libraries/subnet_scan.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/mac_addresses/convert_csv.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/mac_addresses/mac_db.json +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/ports/convert_csv.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/ports/full.json +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/ports/large.json +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/ports/medium.json +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/resources/ports/small.json +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/tests/__init__.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/tests/_helpers.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/tests/test_api.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/tests/test_env.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/tests/test_library.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/__init__.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/api/__init__.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/api/port.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/api/scan.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/api/tools.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/web/__init__.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/blueprints/web/routes.py +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/android-chrome-192x192.png +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/android-chrome-512x512.png +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/apple-touch-icon.png +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/favicon-16x16.png +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/favicon-32x32.png +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/favicon.ico +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/site.webmanifest +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/core.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/layout-sizing.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/main.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/quietReload.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/shutdown-server.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/subnet-info.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/js/subnet-selector.js +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/lanscape.webmanifest +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/core/head.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/core/scripts.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/error.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/info.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/main.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/scan/export.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/scan/ip-table-row.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/scan/ip-table.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/scan/overview.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/scan/scan-error.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/scan.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/templates/shutdown.html +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape.egg-info/SOURCES.txt +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape.egg-info/dependency_links.txt +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape.egg-info/requires.txt +0 -0
- {lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lanscape
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.8a3
|
|
4
4
|
Summary: A python based local network scanner
|
|
5
5
|
Author-email: Michael Dennis <michael@dipduo.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/mdennis281/py-lanscape
|
|
@@ -32,17 +32,15 @@ python -m lanscape
|
|
|
32
32
|
|
|
33
33
|
## Flags
|
|
34
34
|
- `--port <port number>` port of the flask app (default: 5001)
|
|
35
|
-
- `--nogui` run in web mode (default: false)
|
|
36
35
|
- `--reloader` essentially flask debug mode- good for local development (default: false)
|
|
37
36
|
- `--logfile` save log output to lanscape.log
|
|
38
37
|
- `--loglevel <level>` set the logger's log level (default: INFO)
|
|
39
|
-
- `--headless` similar to nogui but doesnt try to open a browser (default: false)
|
|
40
38
|
|
|
41
39
|
|
|
42
40
|
Examples:
|
|
43
41
|
```shell
|
|
44
42
|
python -m lanscape --reloader
|
|
45
|
-
python -m lanscape --
|
|
43
|
+
python -m lanscape --port 5002
|
|
46
44
|
python -m lanscape --logfile --loglevel DEBUG
|
|
47
45
|
```
|
|
48
46
|
|
|
@@ -11,17 +11,15 @@ python -m lanscape
|
|
|
11
11
|
|
|
12
12
|
## Flags
|
|
13
13
|
- `--port <port number>` port of the flask app (default: 5001)
|
|
14
|
-
- `--nogui` run in web mode (default: false)
|
|
15
14
|
- `--reloader` essentially flask debug mode- good for local development (default: false)
|
|
16
15
|
- `--logfile` save log output to lanscape.log
|
|
17
16
|
- `--loglevel <level>` set the logger's log level (default: INFO)
|
|
18
|
-
- `--headless` similar to nogui but doesnt try to open a browser (default: false)
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
Examples:
|
|
22
20
|
```shell
|
|
23
21
|
python -m lanscape --reloader
|
|
24
|
-
python -m lanscape --
|
|
22
|
+
python -m lanscape --port 5002
|
|
25
23
|
python -m lanscape --logfile --loglevel DEBUG
|
|
26
24
|
```
|
|
27
25
|
|
|
@@ -16,7 +16,9 @@ latest = None # used to 'remember' pypi version each runtime
|
|
|
16
16
|
def is_update_available(package=PACKAGE) -> bool:
|
|
17
17
|
installed = get_installed_version(package)
|
|
18
18
|
available = lookup_latest_version(package)
|
|
19
|
-
if installed == LOCAL_VERSION: return False #local
|
|
19
|
+
if installed == LOCAL_VERSION: return False # local
|
|
20
|
+
if 'a' in installed: return False # alpha
|
|
21
|
+
if 'b' in installed: return False # beta
|
|
20
22
|
|
|
21
23
|
return installed != available
|
|
22
24
|
|
|
@@ -13,6 +13,7 @@ configure_logging(args.loglevel, args.logfile)
|
|
|
13
13
|
|
|
14
14
|
from ..libraries.version_manager import get_installed_version, is_update_available
|
|
15
15
|
from .app import start_webserver
|
|
16
|
+
import socket
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
log = logging.getLogger('core')
|
|
@@ -27,9 +28,12 @@ def main():
|
|
|
27
28
|
if not IS_FLASK_RELOAD:
|
|
28
29
|
log.info(f'LANscape v{get_installed_version()}')
|
|
29
30
|
try_check_update()
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
else:
|
|
31
33
|
log.info('Flask reloaded app.')
|
|
32
34
|
|
|
35
|
+
args.port = get_valid_port(args.port)
|
|
36
|
+
|
|
33
37
|
|
|
34
38
|
try:
|
|
35
39
|
|
|
@@ -63,9 +67,8 @@ def open_browser(url: str,wait=2):
|
|
|
63
67
|
time.sleep(wait)
|
|
64
68
|
webbrowser.open(url, new=2)
|
|
65
69
|
except:
|
|
66
|
-
srv_url = f"0.0.0.0:{url.split(':')[1]}"
|
|
67
70
|
log.debug(traceback.format_exc())
|
|
68
|
-
log.info(f'
|
|
71
|
+
log.info(f'Unable to open web browser, server running on {url}')
|
|
69
72
|
|
|
70
73
|
threading.Thread(target=do_open).start()
|
|
71
74
|
|
|
@@ -74,13 +77,21 @@ def no_gui(args: RuntimeArgs):
|
|
|
74
77
|
# if it was, dont open the browser again
|
|
75
78
|
if not IS_FLASK_RELOAD:
|
|
76
79
|
open_browser(f'http://127.0.0.1:{args.port}')
|
|
77
|
-
|
|
78
|
-
log.info(f'Server started: http://127.0.0.1:{args.port}')
|
|
80
|
+
log.info(f'Flask started: http://127.0.0.1:{args.port}')
|
|
79
81
|
|
|
80
82
|
start_webserver(
|
|
81
83
|
args
|
|
82
84
|
)
|
|
83
85
|
|
|
86
|
+
def get_valid_port(port: int):
|
|
87
|
+
"""
|
|
88
|
+
Get the first available port starting from the specified port
|
|
89
|
+
"""
|
|
90
|
+
while True:
|
|
91
|
+
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
92
|
+
if s.connect_ex(('localhost', port)) != 0:
|
|
93
|
+
return port
|
|
94
|
+
port += 1
|
|
84
95
|
|
|
85
96
|
if __name__ == "__main__":
|
|
86
97
|
main()
|
|
@@ -460,8 +460,15 @@ input[type="range"]::-moz-range-thumb {
|
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
.text-secondary {
|
|
463
|
-
color: var(--secondary-accent)
|
|
463
|
+
color: var(--secondary-accent) !important;
|
|
464
464
|
}
|
|
465
|
+
.text-danger {
|
|
466
|
+
color: var(--text-danger-color) !important;
|
|
467
|
+
}
|
|
468
|
+
.text-info {
|
|
469
|
+
color: var(--text-accent-color) !important;
|
|
470
|
+
}
|
|
471
|
+
|
|
465
472
|
.secondary-icon-btn {
|
|
466
473
|
color: var(--secondary-accent);
|
|
467
474
|
transition: .2s all ease-in-out;
|
|
@@ -11,10 +11,15 @@
|
|
|
11
11
|
<div class="version">
|
|
12
12
|
v{{app_version}}
|
|
13
13
|
{% if is_local %}
|
|
14
|
-
<span>(Local
|
|
14
|
+
<span class="text-info">(Local)</span>
|
|
15
15
|
{% elif update_available %}
|
|
16
16
|
<span>(Update Available)</span>
|
|
17
|
-
{% endif %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
{% if 'a' in app_version %}
|
|
19
|
+
<span class="text-danger">(Alpha)</span>
|
|
20
|
+
{% elif 'b' in app_version %}
|
|
21
|
+
<span class="text-info">(Beta)</span>
|
|
22
|
+
{% endif %}
|
|
18
23
|
</div>
|
|
19
24
|
|
|
20
25
|
<div id="app-actions">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lanscape
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.8a3
|
|
4
4
|
Summary: A python based local network scanner
|
|
5
5
|
Author-email: Michael Dennis <michael@dipduo.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/mdennis281/py-lanscape
|
|
@@ -32,17 +32,15 @@ python -m lanscape
|
|
|
32
32
|
|
|
33
33
|
## Flags
|
|
34
34
|
- `--port <port number>` port of the flask app (default: 5001)
|
|
35
|
-
- `--nogui` run in web mode (default: false)
|
|
36
35
|
- `--reloader` essentially flask debug mode- good for local development (default: false)
|
|
37
36
|
- `--logfile` save log output to lanscape.log
|
|
38
37
|
- `--loglevel <level>` set the logger's log level (default: INFO)
|
|
39
|
-
- `--headless` similar to nogui but doesnt try to open a browser (default: false)
|
|
40
38
|
|
|
41
39
|
|
|
42
40
|
Examples:
|
|
43
41
|
```shell
|
|
44
42
|
python -m lanscape --reloader
|
|
45
|
-
python -m lanscape --
|
|
43
|
+
python -m lanscape --port 5002
|
|
46
44
|
python -m lanscape --logfile --loglevel DEBUG
|
|
47
45
|
```
|
|
48
46
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/android-chrome-192x192.png
RENAMED
|
File without changes
|
{lanscape-1.2.8a1 → lanscape-1.2.8a3}/src/lanscape/ui/static/img/ico/android-chrome-512x512.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|