lanscape 1.4.4__py3-none-any.whl → 2.0.0a1__py3-none-any.whl

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.
Files changed (46) hide show
  1. lanscape/__init__.py +9 -4
  2. lanscape/__main__.py +1 -0
  3. lanscape/{libraries → core}/app_scope.py +22 -3
  4. lanscape/{libraries → core}/decorators.py +88 -52
  5. lanscape/{libraries → core}/device_alive.py +4 -3
  6. lanscape/{libraries → core}/errors.py +1 -0
  7. lanscape/{libraries → core}/ip_parser.py +2 -1
  8. lanscape/{libraries → core}/logger.py +1 -0
  9. lanscape/{libraries → core}/mac_lookup.py +1 -0
  10. lanscape/{libraries → core}/net_tools.py +140 -46
  11. lanscape/{libraries → core}/port_manager.py +1 -0
  12. lanscape/{libraries → core}/runtime_args.py +1 -0
  13. lanscape/{libraries → core}/scan_config.py +104 -5
  14. lanscape/core/service_scan.py +205 -0
  15. lanscape/{libraries → core}/subnet_scan.py +19 -11
  16. lanscape/{libraries → core}/version_manager.py +3 -2
  17. lanscape/{libraries → core}/web_browser.py +1 -0
  18. lanscape/resources/mac_addresses/convert_csv.py +1 -0
  19. lanscape/resources/ports/convert_csv.py +1 -0
  20. lanscape/resources/services/definitions.jsonc +576 -400
  21. lanscape/ui/app.py +5 -4
  22. lanscape/ui/blueprints/__init__.py +2 -1
  23. lanscape/ui/blueprints/api/__init__.py +1 -0
  24. lanscape/ui/blueprints/api/port.py +2 -1
  25. lanscape/ui/blueprints/api/scan.py +2 -1
  26. lanscape/ui/blueprints/api/tools.py +5 -4
  27. lanscape/ui/blueprints/web/__init__.py +1 -0
  28. lanscape/ui/blueprints/web/routes.py +30 -2
  29. lanscape/ui/main.py +5 -4
  30. lanscape/ui/shutdown_handler.py +2 -1
  31. lanscape/ui/static/css/style.css +145 -2
  32. lanscape/ui/static/js/main.js +30 -2
  33. lanscape/ui/static/js/scan-config.js +39 -0
  34. lanscape/ui/templates/scan/config.html +43 -0
  35. lanscape/ui/templates/scan/device-detail.html +111 -0
  36. lanscape/ui/templates/scan/ip-table-row.html +12 -78
  37. lanscape/ui/templates/scan/ip-table.html +1 -1
  38. {lanscape-1.4.4.dist-info → lanscape-2.0.0a1.dist-info}/METADATA +7 -2
  39. lanscape-2.0.0a1.dist-info/RECORD +76 -0
  40. lanscape-2.0.0a1.dist-info/entry_points.txt +2 -0
  41. lanscape/libraries/service_scan.py +0 -50
  42. lanscape-1.4.4.dist-info/RECORD +0 -74
  43. /lanscape/{libraries → core}/__init__.py +0 -0
  44. {lanscape-1.4.4.dist-info → lanscape-2.0.0a1.dist-info}/WHEEL +0 -0
  45. {lanscape-1.4.4.dist-info → lanscape-2.0.0a1.dist-info}/licenses/LICENSE +0 -0
  46. {lanscape-1.4.4.dist-info → lanscape-2.0.0a1.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,12 @@
1
1
  <tr>
2
+ <td>
3
+ <div class="info-icon-container">
4
+ <span
5
+ class="material-symbols-outlined info-icon"
6
+ onclick="parent.openDeviceDetail('{{ device.ip }}')"
7
+ >info</span>
8
+ </div>
9
+ </td>
2
10
  <td>
3
11
  <div>{{ device.ip }}</div>
4
12
  {% if device.hostname %}
@@ -18,86 +26,12 @@
18
26
  {% elif device.stage == 'found' %}
19
27
  <span class="badge badge-secondary">found</span>
20
28
  {% elif device.stage == 'scanning' %}
21
- <span class="badge badge-info">scanning</span>
29
+ <span class="badge badge-info">
30
+ scanning
31
+ {{ (device.ports_scanned/data.port_list_length*100)|round|int if data.port_list_length > 0 else 0 }}%
32
+ </span>
22
33
  {% else %}
23
34
  <span class="badge badge-warning">{{device.stage}}</span>
24
35
  {% endif %}
25
36
  </td>
26
- <td class="colorful-buttons">
27
- {% if 80 in device.ports %}
28
- <a href="http://{{ device.ip }}" class="btn btn-sm" target="_blank">HTTP</a>
29
- {% endif %}
30
- {% if 443 in device.ports %}
31
- <a href="https://{{ device.ip }}" class="btn btn-sm" target="_blank">HTTPS</a>
32
- {% endif %}
33
- {% if 22 in device.ports %}
34
- <a href="ssh://{{ device.ip }}" class="btn btn-sm " target="_blank">SSH</a>
35
- {% endif %}
36
- {% if 21 in device.ports %}
37
- <a href="ftp://{{ device.ip }}" class="btn btn-sm " target="_blank">FTP</a>
38
- {% endif %}
39
- {% if 23 in device.ports %}
40
- <a href="telnet://{{ device.ip }}" class="btn btn-sm " target="_blank">Telnet</a>
41
- {% endif %}
42
- {% if 445 in device.ports %}
43
- <a href="smb://{{ device.ip }}" class="btn btn-sm " target="_blank">SMB</a>
44
- {% endif %}
45
- {% if 3306 in device.ports %}
46
- <a href="mysql://{{ device.ip }}" class="btn btn-sm " target="_blank">MySQL</a>
47
- {% endif %}
48
- {% if 5432 in device.ports %}
49
- <a href="postgresql://{{ device.ip }}" class="btn btn-sm " target="_blank">PostgreSQL</a>
50
- {% endif %}
51
- {% if 3389 in device.ports %}
52
- <a href="rdp://{{ device.ip }}" class="btn btn-sm " target="_blank">RDP</a>
53
- {% endif %}
54
- {% if 5900 in device.ports %}
55
- <a href="vnc://{{ device.ip }}" class="btn btn-sm " target="_blank">VNC</a>
56
- {% endif %}
57
- {% if 27017 in device.ports %}
58
- <a href="mongodb://{{ device.ip }}" class="btn btn-sm " target="_blank">MongoDB</a>
59
- {% endif %}
60
- {% if 6379 in device.ports %}
61
- <a href="redis://{{ device.ip }}" class="btn btn-sm " target="_blank">Redis</a>
62
- {% endif %}
63
- {% if 11211 in device.ports %}
64
- <a href="memcached://{{ device.ip }}" class="btn btn-sm " target="_blank">Memcached</a>
65
- {% endif %}
66
- {% if 1433 in device.ports %}
67
- <a href="mssql://{{ device.ip }}" class="btn btn-sm " target="_blank">MSSQL</a>
68
- {% endif %}
69
- {% if 1521 in device.ports %}
70
- <a href="oracle://{{ device.ip }}" class="btn btn-sm " target="_blank">Oracle</a>
71
- {% endif %}
72
- {% if 27015 in device.ports %}
73
- <a href="source://{{ device.ip }}" class="btn btn-sm " target="_blank">Source</a>
74
- {% endif %}
75
- {% if 27015 in device.ports %}
76
- <a href="minecraft://{{ device.ip }}" class="btn btn-sm " target="_blank">Minecraft</a>
77
- {% endif %}
78
- {% if 27015 in device.ports %}
79
- <a href="teamspeak://{{ device.ip }}" class="btn btn-sm " target="_blank">Teamspeak</a>
80
- {% endif %}
81
- {% if 27015 in device.ports %}
82
- <a href="gmod://{{ device.ip }}" class="btn btn-sm " target="_blank">Garry's Mod</a>
83
- {% endif %}
84
- {% if 27015 in device.ports %}
85
- <a href="rust://{{ device.ip }}" class="btn btn-sm " target="_blank">Rust</a>
86
- {% endif %}
87
- {% if 27015 in device.ports %}
88
- <a href="ark://{{ device.ip }}" class="btn btn-sm " target="_blank">ARK</a>
89
- {% endif %}
90
- {% if 27015 in device.ports %}
91
- <a href="terraria://{{ device.ip }}" class="btn btn-sm " target="_blank">Terraria</a>
92
- {% endif %}
93
- {% if 27015 in device.ports %}
94
- <a href="factorio://{{ device.ip }}" class="btn btn-sm " target="_blank">Factorio</a>
95
- {% endif %}
96
- {% if 27015 in device.ports %}
97
- <a href="starmade://{{ device.ip }}" class="btn btn-sm " target="_blank">StarMade</a>
98
- {% endif %}
99
- {% if 27015 in device.ports %}
100
- <a href="7dtd://{{ device.ip }}" class="btn btn-sm " target="_blank">7 Days to Die</a>
101
- {% endif %}
102
- </td>
103
37
  </tr>
@@ -8,11 +8,11 @@
8
8
  <table class="table table-bordered table-striped">
9
9
  <thead>
10
10
  <tr>
11
+ <th class="detail-col" scope="col"></th>
11
12
  <th scope="col">IP / <span class="alt">Host</span></th>
12
13
  <th scope="col">MAC / <span class="alt">Manufacturer</span></th>
13
14
  <th scope="col">Open Ports</th>
14
15
  <th scope="col">Stage</th>
15
- <th scope="col">Actions</th>
16
16
  </tr>
17
17
  </thead>
18
18
  <tbody>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lanscape
3
- Version: 1.4.4
3
+ Version: 2.0.0a1
4
4
  Summary: A python based local network scanner
5
5
  Author-email: Michael Dennis <michael@dipduo.com>
6
6
  License-Expression: MIT
@@ -8,8 +8,13 @@ Project-URL: Homepage, https://github.com/mdennis281/py-lanscape
8
8
  Project-URL: Issues, https://github.com/mdennis281/py-lanscape/issues
9
9
  Keywords: network,scanner,lan,local,python
10
10
  Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
11
16
  Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.8
17
+ Requires-Python: >=3.10
13
18
  Description-Content-Type: text/markdown
14
19
  License-File: LICENSE
15
20
  Requires-Dist: Flask<5.0,>=3.0
@@ -0,0 +1,76 @@
1
+ lanscape/__init__.py,sha256=XFRrhe1uiIw7WpYvnx-5wbBKR9P_wjWl5gNHrUtZP4w,424
2
+ lanscape/__main__.py,sha256=yJpYmbQpYmXgtya-cSZmgNKVSYnyT1lO463R6k-5IPw,171
3
+ lanscape/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ lanscape/core/app_scope.py,sha256=kiKDWjkIf8SYluTmPm5JYEWa4t47ax0XRFoR3kKNM_o,3299
5
+ lanscape/core/decorators.py,sha256=3sNGj-pKqYlY_yAlFNLuAXACwqdPGPdbsLEinNkUTVc,7265
6
+ lanscape/core/device_alive.py,sha256=o5MdqkrbA9UjJ4xMd0yNI_p7C5PrR6xdhrellF9azNQ,6837
7
+ lanscape/core/errors.py,sha256=TnifbydUzT2i_aMz9iU_A7vwdWmbYbOclgJDdHwnj-I,1323
8
+ lanscape/core/ip_parser.py,sha256=U7BqZWKpsmD43WUuephqkxIlMW4EdziRZ-WUdh3zEJA,4197
9
+ lanscape/core/logger.py,sha256=pdaCJ41pEMzA9PImFY0eJ_uRaMDRv0Eb87Wr9_5dN0A,2535
10
+ lanscape/core/mac_lookup.py,sha256=1y-WQ9CLvHTItu9kJrFja6iClLZ_ABYGRi_mFF1PQFY,3520
11
+ lanscape/core/net_tools.py,sha256=3dzo0OWMBX7eg3S_iAxUpixXy72kn0eNIbR9Phi8Sto,19677
12
+ lanscape/core/port_manager.py,sha256=dbeQEhVqKmI7CYPEgW1UFcCa7HxkyJwy8ms9Jajk-ss,4480
13
+ lanscape/core/runtime_args.py,sha256=BASAsIZgZwMi3GHO_oY3oeehVrywVAXUip-Bi51Ocjo,2544
14
+ lanscape/core/scan_config.py,sha256=lG093Gn-j6NIK9JVn7JPMxkkX-9P6fFWP_ghec6-dB0,11115
15
+ lanscape/core/service_scan.py,sha256=m3cI9cYUsP5s3rDYtpp7k2ZiqXddF3Akd_4zlgZVyrg,6949
16
+ lanscape/core/subnet_scan.py,sha256=2HHQH2RVdHdAOwnppKrGr0JHvgNSXTAt-Rheo7-KV1s,14445
17
+ lanscape/core/version_manager.py,sha256=dd7B89L--Zi-0-aqSngM1co6Le7SVePzUJ3GKN3-Ud0,2842
18
+ lanscape/core/web_browser.py,sha256=Uv8isfQk7iTiH5YtBd-aDO9kYQdBhnapA0hM0xM-NKo,6737
19
+ lanscape/resources/mac_addresses/convert_csv.py,sha256=NE2WLgFL4Rw-8zm2YGJ1ZnK19MUR9xwVv3Yg4vNcOVA,1190
20
+ lanscape/resources/mac_addresses/mac_db.json,sha256=Lng2yJerwO7vjefzxzgtE203hry1lIsCadHL1A5Rptg,2136137
21
+ lanscape/resources/ports/convert_csv.py,sha256=JG4kFZ_suoKL8WlkpGlkG0QEbNTEN9J0oBTsdxXB7hQ,1144
22
+ lanscape/resources/ports/full.json,sha256=O8XBW52QvEVSGMQDbXe4-c4qq6XAecw6KJW4m2HkTLo,1441444
23
+ lanscape/resources/ports/large.json,sha256=CzlCcIGCBW1QAgjz4NDerCYA8HcYf6lNxehh7F928y0,138410
24
+ lanscape/resources/ports/medium.json,sha256=T5Rc7wa47MtroHxuZrHSftOqRWbQzhZULJdE1vpsTvU,3518
25
+ lanscape/resources/ports/small.json,sha256=F_lo_5xHwHBfOVfVgxP7ejblR3R62SNtC1Mm33brhYc,376
26
+ lanscape/resources/services/definitions.jsonc,sha256=M9BDeK-mh25sEVj8xDEYbU2ix7EETVWhbiYmMb14Gjg,20905
27
+ lanscape/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ lanscape/ui/app.py,sha256=aAS21f8361oAcGKwvD1W5oLbTk7f9_H5EJEANBnvAHQ,3741
29
+ lanscape/ui/main.py,sha256=teeiGumDG--zU4fBF9nen9q65vhSl7CvIxzkibwSt1c,4177
30
+ lanscape/ui/shutdown_handler.py,sha256=4B5gEaRBucYZZvVKSF8Unq1hQhJDC2W3_W5JK7wyMUE,1706
31
+ lanscape/ui/blueprints/__init__.py,sha256=rEtm7ZT_K5Hd9UYFvsjP-cqmA01RBhKybjMhhUNVwCY,266
32
+ lanscape/ui/blueprints/api/__init__.py,sha256=9G0qtzcSmV2qjLNx4nedsUGU7rKkEGSuFAIbRIWWSyI,104
33
+ lanscape/ui/blueprints/api/port.py,sha256=2QLq03HOMz9y_7q41rah8kOOXF0oKCOczoUfJ3j-QFI,1977
34
+ lanscape/ui/blueprints/api/scan.py,sha256=_kg9qtshoUHTU8b9a2gzEfNWQsx8uixLNE3PO_o8uRA,3327
35
+ lanscape/ui/blueprints/api/tools.py,sha256=wrn3OG-SyUhgiHHovovwbhKIPI7db1iYOIXKnGx5DMY,2433
36
+ lanscape/ui/blueprints/web/__init__.py,sha256=_83Mu7yUAME-lEsK82U_WNEMyfZwQGc9M1LPSDOO4so,119
37
+ lanscape/ui/blueprints/web/routes.py,sha256=WmKFPgslMXoxfy9C6NQqKNvc6Lf1pWSOLbnYL2WqzaI,4535
38
+ lanscape/ui/static/lanscape.webmanifest,sha256=07CqA-PQsO35KJD8R96sI3Pxix6UuBjijPDCuy9vM3s,446
39
+ lanscape/ui/static/css/style.css,sha256=qXDshNhj77__06AuL-RhsxlrqZ5S0JFAmy3M1sk1Sm8,21098
40
+ lanscape/ui/static/img/ico/android-chrome-192x192.png,sha256=JmFT6KBCCuoyxMV-mLNtF9_QJbVBvfWPUizKN700fi8,18255
41
+ lanscape/ui/static/img/ico/android-chrome-512x512.png,sha256=88Jjx_1-4XAnZYz64KP6FdTl_kYkNG2_kQIKteQwSh4,138055
42
+ lanscape/ui/static/img/ico/apple-touch-icon.png,sha256=tEJlLwBZtF4v-NC90YCfRJQ2prTsF4i3VQLK_hnv2Mw,16523
43
+ lanscape/ui/static/img/ico/favicon-16x16.png,sha256=HpQOZk3rziZjT1xQxKuy5WourXsfrdwuzQY1hChzBJQ,573
44
+ lanscape/ui/static/img/ico/favicon-32x32.png,sha256=UpgiDPIHckK19udHtACiaI3ZPbmImUUcN1GcrjpEg9s,1302
45
+ lanscape/ui/static/img/ico/favicon.ico,sha256=rs5vq0MPJ1LzzioOzOz5aQLVfrtS2nLRc920dOeReTw,15406
46
+ lanscape/ui/static/img/ico/site.webmanifest,sha256=ep4Hzh9zhmiZF2At3Fp1dQrYQuYF_3ZPZxc1KcGBvwQ,263
47
+ lanscape/ui/static/js/core.js,sha256=J37LcjchyiNirSkicraoWr-TsW2QeQX_zUwo5mGMmoM,1073
48
+ lanscape/ui/static/js/layout-sizing.js,sha256=U2dsyJi-YKpOpudu3kg2whiU4047ghzDTY3ExYUhpPs,810
49
+ lanscape/ui/static/js/main.js,sha256=Bgb5Ld_UPWzBVzxWkLD0kJGjOoLJyzni2TKE6Uk99VA,7428
50
+ lanscape/ui/static/js/on-tab-close.js,sha256=3icxYWlLpY81iLoW7kQTJeWQ3UnyyboG0dESHF2wLPQ,1376
51
+ lanscape/ui/static/js/quietReload.js,sha256=8POH0t1KVzGCJas9fNsOVbBG-ULwZT2wiS14URgkeAU,702
52
+ lanscape/ui/static/js/scan-config.js,sha256=TiUwWWUGqqQbC3ZJnQCNQpoR492RXA3jLkALe6Nzl5Q,7726
53
+ lanscape/ui/static/js/shutdown-server.js,sha256=Mx8UGmmktHaCK7DL8TVUxah6VEcN0wwLFfhbCId-K8U,453
54
+ lanscape/ui/static/js/subnet-info.js,sha256=osZM6CGs-TC5QpBJWkNWCtXNOKzjyIiWKHwKi4vlDf8,559
55
+ lanscape/ui/static/js/subnet-selector.js,sha256=2YKCAuKU2Ti1CmJrqi4_vNTD2LQbxx7chIDqND_1eAY,358
56
+ lanscape/ui/templates/base.html,sha256=cnKU-kHUBpt6Xg4gPLE4dWkcXr3H-K4Vz1Im8xDKdOQ,1448
57
+ lanscape/ui/templates/error.html,sha256=bqGJbf_ix9wtpUlXk5zvz_XyFpeTbEO-4f0ImgLtUGk,1033
58
+ lanscape/ui/templates/info.html,sha256=gu8SGFUaFQc46Rm4TkZD8HM4Tnls-ZWsJ0FJNhx9wEs,2545
59
+ lanscape/ui/templates/main.html,sha256=ubxKUQcWQ27A0YpvBgj6AnIqgVSfW3exYXyn7EgrKJM,3895
60
+ lanscape/ui/templates/scan.html,sha256=00QX2_1S_1wGzk42r00LjEkJvoioCLs6JgjOibi6r20,376
61
+ lanscape/ui/templates/shutdown.html,sha256=iXVCq2yl5TjZfNFl4esbDJra3gJA2VQpae0jj4ipy9w,701
62
+ lanscape/ui/templates/core/head.html,sha256=eZiebt24xYd_NALe-fFL25rb4uFjUrF4XJjxFH61MgM,779
63
+ lanscape/ui/templates/core/scripts.html,sha256=rSRi4Ut8iejajMPhOc5bzEz-Z3EHxpj_3PxwwyyhmTQ,640
64
+ lanscape/ui/templates/scan/config.html,sha256=ec7EptfdgssKhHDSp_c06xYq7Deyhdu6a5XadLHw58I,14607
65
+ lanscape/ui/templates/scan/device-detail.html,sha256=Yo4t4S5tkOboMQ3b0y-dHlTJIp6_Zb--9iopyQjNMSc,4825
66
+ lanscape/ui/templates/scan/export.html,sha256=Nvs_unojzT3qhN_ZnEgYHou2C9wqWGr3dVr2UiLnYjY,749
67
+ lanscape/ui/templates/scan/ip-table-row.html,sha256=nO5ZMhl3Gnlc8lg5nWmE05_6_5oz9ZfVCDUOgegVGpg,1267
68
+ lanscape/ui/templates/scan/ip-table.html,sha256=AT2ZvCPYdKl-XJiAkEAawPOVuQw-w0MXumGQTr3zyKM,926
69
+ lanscape/ui/templates/scan/overview.html,sha256=xWj9jWDPg2KcPLvS8fnSins23_UXjKCdb2NJwNG2U2Q,1176
70
+ lanscape/ui/templates/scan/scan-error.html,sha256=wmAYQ13IJHUoO8fAGNDjMvNml7tu4rsIU3Vav71ETlA,999
71
+ lanscape-2.0.0a1.dist-info/licenses/LICENSE,sha256=VLoE0IrNTIc09dFm7hMN0qzk4T3q8V0NaPcFQqMemDs,1070
72
+ lanscape-2.0.0a1.dist-info/METADATA,sha256=cV6SLhKrEqhVDFUHUalq11D09qVtp6fa7NkGi7ieJgw,3379
73
+ lanscape-2.0.0a1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
74
+ lanscape-2.0.0a1.dist-info/entry_points.txt,sha256=evxSxUikFa1OEd4e0Boky9sLH87HdgM0YqB_AbB2HYc,51
75
+ lanscape-2.0.0a1.dist-info/top_level.txt,sha256=E9D4sjPz_6H7c85Ycy_pOS2xuv1Wm-ilKhxEprln2ps,9
76
+ lanscape-2.0.0a1.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ lanscape = lanscape.ui.main:main
@@ -1,50 +0,0 @@
1
- """Service scanning module for identifying services running on network ports."""
2
- import asyncio
3
- import logging
4
- import traceback
5
- from lanscape.libraries.app_scope import ResourceManager
6
-
7
- log = logging.getLogger('ServiceScan')
8
- SERVICES = ResourceManager('services').get_jsonc('definitions.jsonc')
9
-
10
- # skip printer ports because they cause blank pages to be printed
11
- PRINTER_PORTS = [9100, 631]
12
-
13
-
14
- def scan_service(ip: str, port: int, timeout=10) -> str:
15
- """
16
- Synchronous function that attempts to identify the service running on a given port.
17
- """
18
-
19
- async def _async_scan_service(ip: str, port: int, timeout) -> str:
20
- if port in PRINTER_PORTS:
21
- return "Printer"
22
-
23
- try:
24
- # Add a timeout to prevent hanging
25
- reader, writer = await asyncio.wait_for(asyncio.open_connection(ip, port), timeout=5)
26
-
27
- # Send a probe appropriate for common services
28
- probe = f"GET / HTTP/1.1\r\nHost: {ip}\r\n\r\n".encode("utf-8")
29
- writer.write(probe)
30
- await writer.drain()
31
-
32
- # Receive the response with a timeout
33
- response = await asyncio.wait_for(reader.read(1024), timeout=timeout)
34
- writer.close()
35
- await writer.wait_closed()
36
-
37
- # Analyze the response to identify the service
38
- response_str = response.decode("utf-8", errors="ignore")
39
- for service, hints in SERVICES.items():
40
- if any(hint.lower() in response_str.lower() for hint in hints):
41
- return service
42
- except asyncio.TimeoutError:
43
- log.warning(f"Timeout scanning {ip}:{port}")
44
- except Exception as e:
45
- log.error(f"Error scanning {ip}:{port}: {str(e)}")
46
- log.debug(traceback.format_exc())
47
- return "Unknown"
48
-
49
- # Use asyncio.run to execute the asynchronous logic synchronously
50
- return asyncio.run(_async_scan_service(ip, port, timeout=timeout))
@@ -1,74 +0,0 @@
1
- lanscape/__init__.py,sha256=YVrshFIK9GR9JrtpvJSg3BmsYcffuAdXJVxCoRCGmTE,355
2
- lanscape/__main__.py,sha256=PuY42yuCLAwHrOREJ6u2DgVyGX5hZKRQeoE9pajkNfM,170
3
- lanscape/libraries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- lanscape/libraries/app_scope.py,sha256=EqYQRQcbjOPPcIOhFkIepcz2cKHmoUHxWj2JSoRJmzk,2542
5
- lanscape/libraries/decorators.py,sha256=LrEu-kU7IHHsgBAzDZB9BDApgQKnRyAfH1hmf-by83I,6062
6
- lanscape/libraries/device_alive.py,sha256=mwvHJp9rWV1_zfrE57aPKOsGp06fHdzrXOuGDWiZ2T8,6851
7
- lanscape/libraries/errors.py,sha256=QTf42UzR9Zxj1t1mdwfLvZIp0c9a5EItELOdCR7kTmE,1322
8
- lanscape/libraries/ip_parser.py,sha256=RgIEvHw_oQEcjUYOrvcpbfm4KThtH8L68WyhSOJNOfE,4201
9
- lanscape/libraries/logger.py,sha256=nzo6J8UdlMdhRkOJEDOIHKztoE3Du8PQZad7ixvNgeM,2534
10
- lanscape/libraries/mac_lookup.py,sha256=PxBSMe3wEVDtivCsh5NclSAguZz9rqdAS7QshBiuWvM,3519
11
- lanscape/libraries/net_tools.py,sha256=qPeqG1KvAMCbEn8m5cL7W2ykn05LAcsAbAzx-YJEsBo,15370
12
- lanscape/libraries/port_manager.py,sha256=3_ROOb6JEiB0NByZVtADuGcldFkgZwn1RKtvwgs9AIk,4479
13
- lanscape/libraries/runtime_args.py,sha256=2vIqRrcWr-NHRSBlZGrxh1PdkPY0ytkPguu8KZqy2L8,2543
14
- lanscape/libraries/scan_config.py,sha256=IOtwAaiy_f1r1KcsyTUVurOmo3kUmWdquAxWh8Gv39A,8329
15
- lanscape/libraries/service_scan.py,sha256=ZF4LL2gSI0T5oYEMjc8pCVtJkV1KIk4xP-AeEAkSdLc,1944
16
- lanscape/libraries/subnet_scan.py,sha256=lL2LzuxoTgPyvsdkPPEcZDqQPbCAGMHAjoX2slKGUKc,14136
17
- lanscape/libraries/version_manager.py,sha256=tsdFx2V312mVpcRres1W1jPVFJFfpDPA4E7FNkjPY9w,2851
18
- lanscape/libraries/web_browser.py,sha256=23MuGIrBYdGhw6ejj6OWxwReeKIlWhtWukc1dKV_3_0,6736
19
- lanscape/resources/mac_addresses/convert_csv.py,sha256=hvlyLs0XmuuhBuvXBNRGP1cKJzYVRSf8VfUJ1VqROms,1189
20
- lanscape/resources/mac_addresses/mac_db.json,sha256=Lng2yJerwO7vjefzxzgtE203hry1lIsCadHL1A5Rptg,2136137
21
- lanscape/resources/ports/convert_csv.py,sha256=MMLDa-5pGMsn4A2_k45jHsRYffrRY_0Z2D1ziiikeQA,1143
22
- lanscape/resources/ports/full.json,sha256=O8XBW52QvEVSGMQDbXe4-c4qq6XAecw6KJW4m2HkTLo,1441444
23
- lanscape/resources/ports/large.json,sha256=CzlCcIGCBW1QAgjz4NDerCYA8HcYf6lNxehh7F928y0,138410
24
- lanscape/resources/ports/medium.json,sha256=T5Rc7wa47MtroHxuZrHSftOqRWbQzhZULJdE1vpsTvU,3518
25
- lanscape/resources/ports/small.json,sha256=F_lo_5xHwHBfOVfVgxP7ejblR3R62SNtC1Mm33brhYc,376
26
- lanscape/resources/services/definitions.jsonc,sha256=4k7XnqIpWr1xuF7EUMgZf7y6aVDxOL_if7GGsT-JEuY,8387
27
- lanscape/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- lanscape/ui/app.py,sha256=bL3K3NkGV1RY67kGHEQIWUl-Jm_MVN4WsIlsRQuK-SU,3760
29
- lanscape/ui/main.py,sha256=8Be2UL_ezWLpaEYYejjd8iyM2_hG1pXlkHdVjn-lySc,4196
30
- lanscape/ui/shutdown_handler.py,sha256=eJC9A0MDMgLv_KQnJlUy3Kz2xCGDAf5opVdd8nBtABE,1710
31
- lanscape/ui/blueprints/__init__.py,sha256=WLnPfPE06684wArgKDDLfsW-1hKFlLe75AR7uLAPlKc,270
32
- lanscape/ui/blueprints/api/__init__.py,sha256=5Z4Y7B36O-bNFenpomfuNhPuJ9dW_MC0TPUU3pCFVfA,103
33
- lanscape/ui/blueprints/api/port.py,sha256=8FuNcjF56wmgjoCZeaYrIakTGdshAmDjUmkjXHbaZ8I,1981
34
- lanscape/ui/blueprints/api/scan.py,sha256=lbwV5AciMGP-S2J_EaXcPOHeHywImzQ_bm2ZSJg-H5U,3331
35
- lanscape/ui/blueprints/api/tools.py,sha256=IhY_ldrnVYuZKFv6gsevr9LL5gfTnmVuR95zFc05Tlo,2452
36
- lanscape/ui/blueprints/web/__init__.py,sha256=NvgnjP0X4LwqVhSEyh5RUzoG45N44kHK1MEFlfvBxTg,118
37
- lanscape/ui/blueprints/web/routes.py,sha256=883puFTHePUEgwS4a2-Co6-gdLwr5NbOx0goUck7054,3571
38
- lanscape/ui/static/lanscape.webmanifest,sha256=07CqA-PQsO35KJD8R96sI3Pxix6UuBjijPDCuy9vM3s,446
39
- lanscape/ui/static/css/style.css,sha256=6Mxpwtu4zYB9z42Aq7U1UREcMHEq2GlN5Pa91963a0k,17757
40
- lanscape/ui/static/img/ico/android-chrome-192x192.png,sha256=JmFT6KBCCuoyxMV-mLNtF9_QJbVBvfWPUizKN700fi8,18255
41
- lanscape/ui/static/img/ico/android-chrome-512x512.png,sha256=88Jjx_1-4XAnZYz64KP6FdTl_kYkNG2_kQIKteQwSh4,138055
42
- lanscape/ui/static/img/ico/apple-touch-icon.png,sha256=tEJlLwBZtF4v-NC90YCfRJQ2prTsF4i3VQLK_hnv2Mw,16523
43
- lanscape/ui/static/img/ico/favicon-16x16.png,sha256=HpQOZk3rziZjT1xQxKuy5WourXsfrdwuzQY1hChzBJQ,573
44
- lanscape/ui/static/img/ico/favicon-32x32.png,sha256=UpgiDPIHckK19udHtACiaI3ZPbmImUUcN1GcrjpEg9s,1302
45
- lanscape/ui/static/img/ico/favicon.ico,sha256=rs5vq0MPJ1LzzioOzOz5aQLVfrtS2nLRc920dOeReTw,15406
46
- lanscape/ui/static/img/ico/site.webmanifest,sha256=ep4Hzh9zhmiZF2At3Fp1dQrYQuYF_3ZPZxc1KcGBvwQ,263
47
- lanscape/ui/static/js/core.js,sha256=J37LcjchyiNirSkicraoWr-TsW2QeQX_zUwo5mGMmoM,1073
48
- lanscape/ui/static/js/layout-sizing.js,sha256=U2dsyJi-YKpOpudu3kg2whiU4047ghzDTY3ExYUhpPs,810
49
- lanscape/ui/static/js/main.js,sha256=zCT_4Vql-XzmoMq9fDjC1p4W8WowjIuctwNJ2ymeonI,6538
50
- lanscape/ui/static/js/on-tab-close.js,sha256=3icxYWlLpY81iLoW7kQTJeWQ3UnyyboG0dESHF2wLPQ,1376
51
- lanscape/ui/static/js/quietReload.js,sha256=8POH0t1KVzGCJas9fNsOVbBG-ULwZT2wiS14URgkeAU,702
52
- lanscape/ui/static/js/scan-config.js,sha256=EOPo-0liYn3UPuhm2kaQrT7G-UumxQ25_rh1c1DaTj4,6021
53
- lanscape/ui/static/js/shutdown-server.js,sha256=Mx8UGmmktHaCK7DL8TVUxah6VEcN0wwLFfhbCId-K8U,453
54
- lanscape/ui/static/js/subnet-info.js,sha256=osZM6CGs-TC5QpBJWkNWCtXNOKzjyIiWKHwKi4vlDf8,559
55
- lanscape/ui/static/js/subnet-selector.js,sha256=2YKCAuKU2Ti1CmJrqi4_vNTD2LQbxx7chIDqND_1eAY,358
56
- lanscape/ui/templates/base.html,sha256=cnKU-kHUBpt6Xg4gPLE4dWkcXr3H-K4Vz1Im8xDKdOQ,1448
57
- lanscape/ui/templates/error.html,sha256=bqGJbf_ix9wtpUlXk5zvz_XyFpeTbEO-4f0ImgLtUGk,1033
58
- lanscape/ui/templates/info.html,sha256=gu8SGFUaFQc46Rm4TkZD8HM4Tnls-ZWsJ0FJNhx9wEs,2545
59
- lanscape/ui/templates/main.html,sha256=ubxKUQcWQ27A0YpvBgj6AnIqgVSfW3exYXyn7EgrKJM,3895
60
- lanscape/ui/templates/scan.html,sha256=00QX2_1S_1wGzk42r00LjEkJvoioCLs6JgjOibi6r20,376
61
- lanscape/ui/templates/shutdown.html,sha256=iXVCq2yl5TjZfNFl4esbDJra3gJA2VQpae0jj4ipy9w,701
62
- lanscape/ui/templates/core/head.html,sha256=eZiebt24xYd_NALe-fFL25rb4uFjUrF4XJjxFH61MgM,779
63
- lanscape/ui/templates/core/scripts.html,sha256=rSRi4Ut8iejajMPhOc5bzEz-Z3EHxpj_3PxwwyyhmTQ,640
64
- lanscape/ui/templates/scan/config.html,sha256=O4XtwMq3Dz6gaRpADqsse1MAyfmJOhfxQune2n7WdMQ,12113
65
- lanscape/ui/templates/scan/export.html,sha256=Nvs_unojzT3qhN_ZnEgYHou2C9wqWGr3dVr2UiLnYjY,749
66
- lanscape/ui/templates/scan/ip-table-row.html,sha256=RANDsfW4xBATdtiLrxUlRouFSjgwetZqdzH-MJgj2mE,4740
67
- lanscape/ui/templates/scan/ip-table.html,sha256=CP7AG8WHOgy3AyYCIN0wA2wO6n0H1X0F9IOncQtpPvE,914
68
- lanscape/ui/templates/scan/overview.html,sha256=xWj9jWDPg2KcPLvS8fnSins23_UXjKCdb2NJwNG2U2Q,1176
69
- lanscape/ui/templates/scan/scan-error.html,sha256=wmAYQ13IJHUoO8fAGNDjMvNml7tu4rsIU3Vav71ETlA,999
70
- lanscape-1.4.4.dist-info/licenses/LICENSE,sha256=VLoE0IrNTIc09dFm7hMN0qzk4T3q8V0NaPcFQqMemDs,1070
71
- lanscape-1.4.4.dist-info/METADATA,sha256=VfhRo9vbS8qlOXBblDKX8YXse9jWokVUAWhAt1LPVJk,3121
72
- lanscape-1.4.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
73
- lanscape-1.4.4.dist-info/top_level.txt,sha256=E9D4sjPz_6H7c85Ycy_pOS2xuv1Wm-ilKhxEprln2ps,9
74
- lanscape-1.4.4.dist-info/RECORD,,
File without changes