SnakeScan 1.7.5__tar.gz → 1.7.6__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.
- snakescan-1.7.6/PKG-INFO +102 -0
- snakescan-1.7.6/README.md +89 -0
- {snakescan-1.7.5 → snakescan-1.7.6}/SnakeScan/CLI.py +174 -1
- snakescan-1.7.6/SnakeScan/Pool_UDP_Executor.py +64 -0
- {snakescan-1.7.5 → snakescan-1.7.6}/SnakeScan/__init__.py +1 -1
- snakescan-1.7.5/PKG-INFO +0 -102
- snakescan-1.7.5/README.md +0 -88
- {snakescan-1.7.5 → snakescan-1.7.6}/LICENSE +0 -0
- {snakescan-1.7.5 → snakescan-1.7.6}/SnakeScan/Check_subnet.py +0 -0
- {snakescan-1.7.5 → snakescan-1.7.6}/SnakeScan/Get_ssl.py +0 -0
- {snakescan-1.7.5 → snakescan-1.7.6}/SnakeScan/PoolExecutor.py +0 -0
- {snakescan-1.7.5 → snakescan-1.7.6}/pyproject.toml +0 -0
snakescan-1.7.6/PKG-INFO
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: SnakeScan
|
|
3
|
+
Version: 1.7.6
|
|
4
|
+
Summary: IPv4 address scanner for collecting address information.Scan or get the IPv4 address from the IPv6 host
|
|
5
|
+
Author: Den*Ram
|
|
6
|
+
Requires-Python: >=3.7
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: art
|
|
11
|
+
Requires-Dist: tqdm
|
|
12
|
+
Requires-Dist: termcolor
|
|
13
|
+
|
|
14
|
+
<!--
|
|
15
|
+
|
|
16
|
+
This documentation was created with the assistance of the GeekBot language model and Den*Ram
|
|
17
|
+
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
# 🐍 SnakeScan: A Robust Python Port Scanner
|
|
21
|
+
|
|
22
|
+
A versatile and efficient Python library designed for comprehensive network port scanning.
|
|
23
|
+
|
|
24
|
+
[](https://pypi.org/project/SnakeScan/)
|
|
25
|
+
|
|
26
|
+
[](https://opensource.org/licenses/MIT)
|
|
27
|
+
|
|
28
|
+
[](https://www.python.org/)
|
|
29
|
+
|
|
30
|
+
[](https://img.shields.io/badge/Status-Beta-yellow)
|
|
31
|
+
|
|
32
|
+
**SnakeScan** provides a flexible and powerful solution for network administrators, security professionals, and developers requiring reliable port scanning capabilities. From basic port verification to advanced, multi-threaded subnet analysis, SnakeScan delivers the tools necessary for effective network assessment.
|
|
33
|
+
|
|
34
|
+
## ⚙️ Key Features:
|
|
35
|
+
|
|
36
|
+
* **Flexible Port Specification:** Define target ports as single values, ranges, or through pre-configured sets.
|
|
37
|
+
|
|
38
|
+
* **Multi-Threaded Architecture:** Accelerate scanning operations with parallel processing for rapid analysis.
|
|
39
|
+
|
|
40
|
+
* **IP Information Retrieval:** Obtain detailed information about target IP addresses, supporting both IPv4 and IPv6.
|
|
41
|
+
|
|
42
|
+
* **Real-time Port Monitoring:** Utilize the `Watcher` class for continuous monitoring of critical port statuses.
|
|
43
|
+
|
|
44
|
+
* **Concise Command-Line Interface & API:** Integrate SnakeScan seamlessly into workflows via CLI or programmatic access.
|
|
45
|
+
|
|
46
|
+
* **UDP Port Scanning:** Native support for scanning UDP ports.
|
|
47
|
+
|
|
48
|
+
## ⬇️ Installation:
|
|
49
|
+
|
|
50
|
+
Install SnakeScan using pip:
|
|
51
|
+
|
|
52
|
+
bash
|
|
53
|
+
|
|
54
|
+
pip install SnakeScan
|
|
55
|
+
|
|
56
|
+
## ⌨️ Command Line Usage:
|
|
57
|
+
|
|
58
|
+
### 💡 Attribute Reference:
|
|
59
|
+
|
|
60
|
+
* **-p**: Specify target ports for scanning (single port or range). Note: Range specifications exclude the lower bound on the first entry. Example: To scan from port 80 to 443, define the range as `79-443`. Examples: `snake -p 80,443` or `snake -p 80,3437,8080,20-30,79-443`
|
|
61
|
+
|
|
62
|
+
* **-u**: Enable UDP port scanning. Example: `snake -p 53 -u`
|
|
63
|
+
|
|
64
|
+
* **-h**: Display the complete list of available command-line attributes and their descriptions. Example: `snake -h` or `snake -help`
|
|
65
|
+
|
|
66
|
+
* **-sp**: Initiate a scan using a predefined set of common ports with `ProcessPoolExecutor`. Example: `snake -sp`
|
|
67
|
+
|
|
68
|
+
* **-v**: Display the current version of the SnakeScan library. Example: `snake -v`
|
|
69
|
+
|
|
70
|
+
* **-gs**: Retrieve the SSL/TLS certificate from a specified web server. Example: `snake www.google.com -gs` (Requires a valid hostname to avoid connection errors.)
|
|
71
|
+
|
|
72
|
+
* **-t**: Enable multi-threading for enhanced scan performance. Example: `snake -t`
|
|
73
|
+
|
|
74
|
+
* **-ch**: Scan a subnet to discover active IP addresses on the network. Example: `snake -ch`
|
|
75
|
+
|
|
76
|
+
* **-l**: Display your public IP address (requires an active internet connection). Example: `snake -l`
|
|
77
|
+
|
|
78
|
+
* **-i**: Show detailed information about a specific IP address (supports both IPv4 and IPv6). Example: `snake www.google.com -i`
|
|
79
|
+
|
|
80
|
+
## 💻 Python Code Integration:
|
|
81
|
+
|
|
82
|
+
### ⏱️ Watcher Class: Real-Time Port Status
|
|
83
|
+
|
|
84
|
+
The `Watcher` class facilitates continuous monitoring of a specified port.
|
|
85
|
+
|
|
86
|
+
python
|
|
87
|
+
|
|
88
|
+
from SnakeScan import Watcher
|
|
89
|
+
|
|
90
|
+
watcher = Watcher("localhost", 53, 2) # Host, port, check interval (in seconds)
|
|
91
|
+
|
|
92
|
+
watcher.start() # Begin monitoring!
|
|
93
|
+
|
|
94
|
+
#### `Watcher` Methods:
|
|
95
|
+
|
|
96
|
+
* `Watcher.start()` - Initiate the port monitoring process.
|
|
97
|
+
|
|
98
|
+
* `Watcher.stop()` - Terminate the port monitoring process.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
**Latest Update:** 1.7.6 (Introduced UDP port scanning)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
|
|
3
|
+
This documentation was created with the assistance of the GeekBot language model and Den*Ram
|
|
4
|
+
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
# 🐍 SnakeScan: A Robust Python Port Scanner
|
|
8
|
+
|
|
9
|
+
A versatile and efficient Python library designed for comprehensive network port scanning.
|
|
10
|
+
|
|
11
|
+
[](https://pypi.org/project/SnakeScan/)
|
|
12
|
+
|
|
13
|
+
[](https://opensource.org/licenses/MIT)
|
|
14
|
+
|
|
15
|
+
[](https://www.python.org/)
|
|
16
|
+
|
|
17
|
+
[](https://img.shields.io/badge/Status-Beta-yellow)
|
|
18
|
+
|
|
19
|
+
**SnakeScan** provides a flexible and powerful solution for network administrators, security professionals, and developers requiring reliable port scanning capabilities. From basic port verification to advanced, multi-threaded subnet analysis, SnakeScan delivers the tools necessary for effective network assessment.
|
|
20
|
+
|
|
21
|
+
## ⚙️ Key Features:
|
|
22
|
+
|
|
23
|
+
* **Flexible Port Specification:** Define target ports as single values, ranges, or through pre-configured sets.
|
|
24
|
+
|
|
25
|
+
* **Multi-Threaded Architecture:** Accelerate scanning operations with parallel processing for rapid analysis.
|
|
26
|
+
|
|
27
|
+
* **IP Information Retrieval:** Obtain detailed information about target IP addresses, supporting both IPv4 and IPv6.
|
|
28
|
+
|
|
29
|
+
* **Real-time Port Monitoring:** Utilize the `Watcher` class for continuous monitoring of critical port statuses.
|
|
30
|
+
|
|
31
|
+
* **Concise Command-Line Interface & API:** Integrate SnakeScan seamlessly into workflows via CLI or programmatic access.
|
|
32
|
+
|
|
33
|
+
* **UDP Port Scanning:** Native support for scanning UDP ports.
|
|
34
|
+
|
|
35
|
+
## ⬇️ Installation:
|
|
36
|
+
|
|
37
|
+
Install SnakeScan using pip:
|
|
38
|
+
|
|
39
|
+
bash
|
|
40
|
+
|
|
41
|
+
pip install SnakeScan
|
|
42
|
+
|
|
43
|
+
## ⌨️ Command Line Usage:
|
|
44
|
+
|
|
45
|
+
### 💡 Attribute Reference:
|
|
46
|
+
|
|
47
|
+
* **-p**: Specify target ports for scanning (single port or range). Note: Range specifications exclude the lower bound on the first entry. Example: To scan from port 80 to 443, define the range as `79-443`. Examples: `snake -p 80,443` or `snake -p 80,3437,8080,20-30,79-443`
|
|
48
|
+
|
|
49
|
+
* **-u**: Enable UDP port scanning. Example: `snake -p 53 -u`
|
|
50
|
+
|
|
51
|
+
* **-h**: Display the complete list of available command-line attributes and their descriptions. Example: `snake -h` or `snake -help`
|
|
52
|
+
|
|
53
|
+
* **-sp**: Initiate a scan using a predefined set of common ports with `ProcessPoolExecutor`. Example: `snake -sp`
|
|
54
|
+
|
|
55
|
+
* **-v**: Display the current version of the SnakeScan library. Example: `snake -v`
|
|
56
|
+
|
|
57
|
+
* **-gs**: Retrieve the SSL/TLS certificate from a specified web server. Example: `snake www.google.com -gs` (Requires a valid hostname to avoid connection errors.)
|
|
58
|
+
|
|
59
|
+
* **-t**: Enable multi-threading for enhanced scan performance. Example: `snake -t`
|
|
60
|
+
|
|
61
|
+
* **-ch**: Scan a subnet to discover active IP addresses on the network. Example: `snake -ch`
|
|
62
|
+
|
|
63
|
+
* **-l**: Display your public IP address (requires an active internet connection). Example: `snake -l`
|
|
64
|
+
|
|
65
|
+
* **-i**: Show detailed information about a specific IP address (supports both IPv4 and IPv6). Example: `snake www.google.com -i`
|
|
66
|
+
|
|
67
|
+
## 💻 Python Code Integration:
|
|
68
|
+
|
|
69
|
+
### ⏱️ Watcher Class: Real-Time Port Status
|
|
70
|
+
|
|
71
|
+
The `Watcher` class facilitates continuous monitoring of a specified port.
|
|
72
|
+
|
|
73
|
+
python
|
|
74
|
+
|
|
75
|
+
from SnakeScan import Watcher
|
|
76
|
+
|
|
77
|
+
watcher = Watcher("localhost", 53, 2) # Host, port, check interval (in seconds)
|
|
78
|
+
|
|
79
|
+
watcher.start() # Begin monitoring!
|
|
80
|
+
|
|
81
|
+
#### `Watcher` Methods:
|
|
82
|
+
|
|
83
|
+
* `Watcher.start()` - Initiate the port monitoring process.
|
|
84
|
+
|
|
85
|
+
* `Watcher.stop()` - Terminate the port monitoring process.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
**Latest Update:** 1.7.6 (Introduced UDP port scanning)
|
|
@@ -11,6 +11,7 @@ from tqdm import tqdm
|
|
|
11
11
|
from SnakeScan.Check_subnet import Check_network
|
|
12
12
|
from SnakeScan.PoolExecutor import PoolProcessExecutor
|
|
13
13
|
from SnakeScan.Get_ssl import Get_ssl
|
|
14
|
+
from SnakeScan.Pool_UDP_Executor import PoolExecutorUDP
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
def main():
|
|
@@ -112,7 +113,7 @@ ports = {
|
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
|
|
115
|
-
version = "1.7.
|
|
116
|
+
version = "1.7.6"
|
|
116
117
|
|
|
117
118
|
|
|
118
119
|
def is_port_open(host, port):
|
|
@@ -172,6 +173,9 @@ def SnakeArgs():
|
|
|
172
173
|
description="SnakeScan - It's a command line library for scan and get information about ip."
|
|
173
174
|
)
|
|
174
175
|
parser.add_argument("host", nargs="?", default="None")
|
|
176
|
+
parser.add_argument(
|
|
177
|
+
"-u", "--udp", action="store_true", help="Use UDP ports for scanning"
|
|
178
|
+
)
|
|
175
179
|
parser.add_argument(
|
|
176
180
|
"-gs", "--getssl", action="store_true", help="Get official ssl certificate"
|
|
177
181
|
)
|
|
@@ -225,6 +229,170 @@ for n in range(len(host)):
|
|
|
225
229
|
host[n] = host[n][0:i]
|
|
226
230
|
if host[0] == "None":
|
|
227
231
|
host[0] = "localhost"
|
|
232
|
+
if SnakeArgs().udp:
|
|
233
|
+
|
|
234
|
+
def is_port_open(host, port, timeout=1):
|
|
235
|
+
try:
|
|
236
|
+
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
237
|
+
sock.settimeout(timeout)
|
|
238
|
+
message = b"Test UDP packet"
|
|
239
|
+
address = (host, port)
|
|
240
|
+
|
|
241
|
+
sock.sendto(message, address)
|
|
242
|
+
|
|
243
|
+
try:
|
|
244
|
+
data, server = sock.recvfrom(4096)
|
|
245
|
+
print(f"Response received: {data.decode()} from {server}")
|
|
246
|
+
is_open = True
|
|
247
|
+
except socket.timeout:
|
|
248
|
+
is_open = False
|
|
249
|
+
except ConnectionRefusedError:
|
|
250
|
+
is_open = False
|
|
251
|
+
|
|
252
|
+
sock.close()
|
|
253
|
+
return is_open
|
|
254
|
+
|
|
255
|
+
except socket.gaierror:
|
|
256
|
+
print("Error: Unable to resolve host name.")
|
|
257
|
+
return None
|
|
258
|
+
except socket.error as e:
|
|
259
|
+
print(f"Socket error: {e}")
|
|
260
|
+
return False
|
|
261
|
+
|
|
262
|
+
def is_port_open_threads(host, port, timeout=1):
|
|
263
|
+
try:
|
|
264
|
+
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
265
|
+
sock.settimeout(timeout)
|
|
266
|
+
message = b"Test UDP packet"
|
|
267
|
+
address = (host, port)
|
|
268
|
+
|
|
269
|
+
sock.sendto(message, address)
|
|
270
|
+
|
|
271
|
+
try:
|
|
272
|
+
data, server = sock.recvfrom(4096)
|
|
273
|
+
print(f"Response received: {data.decode()} from {server}")
|
|
274
|
+
print(
|
|
275
|
+
f"Open{colored('[√]','green')}-->{ports.get(port)}|{port}| may be listening on host"
|
|
276
|
+
)
|
|
277
|
+
except socket.timeout:
|
|
278
|
+
print(
|
|
279
|
+
f"Closed{colored('[X]','red')}-->{ports.get(port)}|{port}| is likely closed on host"
|
|
280
|
+
)
|
|
281
|
+
except ConnectionRefusedError:
|
|
282
|
+
print("An error occurred while scanning.")
|
|
283
|
+
sock.close()
|
|
284
|
+
except socket.gaierror:
|
|
285
|
+
print("Error: Unable to resolve host name.")
|
|
286
|
+
except socket.error as e:
|
|
287
|
+
print(f"Socket error: {e}")
|
|
288
|
+
|
|
289
|
+
ports = {
|
|
290
|
+
7: "Echo",
|
|
291
|
+
9: "Discard",
|
|
292
|
+
19: "Chargen",
|
|
293
|
+
37: "Time",
|
|
294
|
+
53: "DNS",
|
|
295
|
+
67: "BOOTPS/DHCP server",
|
|
296
|
+
68: "BOOTPC/DHCP client",
|
|
297
|
+
69: "TFTP",
|
|
298
|
+
123: "NTP",
|
|
299
|
+
137: "NetBIOS-NS",
|
|
300
|
+
138: "NetBIOS-DGM",
|
|
301
|
+
161: "SNMP",
|
|
302
|
+
162: "SNMP-trap",
|
|
303
|
+
389: "LDAP",
|
|
304
|
+
500: "ISAKMP",
|
|
305
|
+
520: "RIP",
|
|
306
|
+
5353: "MDNS",
|
|
307
|
+
546: "DHCPv6 client",
|
|
308
|
+
547: "DHCPv6 server",
|
|
309
|
+
2049: "NFS",
|
|
310
|
+
}
|
|
311
|
+
else:
|
|
312
|
+
ports = {
|
|
313
|
+
20: "FTP-Data",
|
|
314
|
+
21: "FTP-Control",
|
|
315
|
+
22: "SSH",
|
|
316
|
+
23: "Telnet",
|
|
317
|
+
24: "Priv-mail",
|
|
318
|
+
25: "SMTP",
|
|
319
|
+
29: "MSG-ICP",
|
|
320
|
+
31: "MSG-AUTH",
|
|
321
|
+
33: "DSP",
|
|
322
|
+
35: "Priv-print",
|
|
323
|
+
41: "Graphics",
|
|
324
|
+
42: "WINS",
|
|
325
|
+
43: "Whois",
|
|
326
|
+
48: "AUDITD",
|
|
327
|
+
57: "Priv-term",
|
|
328
|
+
59: "Priv-file",
|
|
329
|
+
63: "WHOISPP",
|
|
330
|
+
66: "SQL-NET",
|
|
331
|
+
75: "Priv-dial",
|
|
332
|
+
80: "HTTP",
|
|
333
|
+
109: "POP2",
|
|
334
|
+
110: "POP3",
|
|
335
|
+
113: "ident",
|
|
336
|
+
115: "SFTP",
|
|
337
|
+
118: "SQLServ",
|
|
338
|
+
119: "NNTP",
|
|
339
|
+
139: "NetBIOS-SSN",
|
|
340
|
+
143: "IMAP",
|
|
341
|
+
179: "BGP",
|
|
342
|
+
194: "IRC",
|
|
343
|
+
199: "SMUX",
|
|
344
|
+
200: "SRC",
|
|
345
|
+
220: "IMAP3",
|
|
346
|
+
311: "ASIP-WEBADMIN",
|
|
347
|
+
344: "PDAP",
|
|
348
|
+
345: "PAWSERV",
|
|
349
|
+
346: "ZSERV",
|
|
350
|
+
347: "FATSERV",
|
|
351
|
+
401: "UPS",
|
|
352
|
+
413: "SMSP",
|
|
353
|
+
427: "SVRLOC",
|
|
354
|
+
443: "HTTPS",
|
|
355
|
+
444: "SNPP",
|
|
356
|
+
606: "URM",
|
|
357
|
+
607: "NQS",
|
|
358
|
+
631: "IPP",
|
|
359
|
+
636: "LDAPS",
|
|
360
|
+
639: "MSDP",
|
|
361
|
+
646: "LDP",
|
|
362
|
+
647: "DHCP-FAILOVER",
|
|
363
|
+
648: "RRP",
|
|
364
|
+
753: "RRH",
|
|
365
|
+
830: "NETCONF-SSH",
|
|
366
|
+
831: "NETCONF-BEEP",
|
|
367
|
+
832: "NETCONFSOAPHTTP",
|
|
368
|
+
833: "NETCONFSOAPBEEP",
|
|
369
|
+
861: "OWAMP-CONTROL",
|
|
370
|
+
862: "TWAPM-CONTROL",
|
|
371
|
+
873: "RSYNC",
|
|
372
|
+
989: "FTPS-DATA",
|
|
373
|
+
990: "FTPS",
|
|
374
|
+
995: "POP3S",
|
|
375
|
+
1038: "MTQP",
|
|
376
|
+
1080: "SOCKS",
|
|
377
|
+
1194: "OpenVPN",
|
|
378
|
+
1433: "SQL server",
|
|
379
|
+
1723: "PPTP",
|
|
380
|
+
2222: "SSH",
|
|
381
|
+
3128: "HTTP",
|
|
382
|
+
3268: "LDAP",
|
|
383
|
+
3306: "MySQL",
|
|
384
|
+
3389: "RDP",
|
|
385
|
+
3455: "RSVP",
|
|
386
|
+
3632: "Distributed compiler",
|
|
387
|
+
3689: "DAAP",
|
|
388
|
+
5432: "PostgreSQL",
|
|
389
|
+
5900: "VNC",
|
|
390
|
+
8000: "HTTP",
|
|
391
|
+
8080: "HTTP",
|
|
392
|
+
8443: "HTTPS",
|
|
393
|
+
8888: "HTTP",
|
|
394
|
+
10000: "Webmin",
|
|
395
|
+
}
|
|
228
396
|
if SnakeArgs().ports:
|
|
229
397
|
rangeports, port_user = Ports(port_user)
|
|
230
398
|
for i in range(len(port_user)):
|
|
@@ -390,6 +558,11 @@ if SnakeArgs().thread:
|
|
|
390
558
|
if SnakeArgs().version:
|
|
391
559
|
print(f"SnakeScan_Build_{version}")
|
|
392
560
|
if SnakeArgs().speed:
|
|
561
|
+
if SnakeArgs().udp:
|
|
562
|
+
for n in range(len(host)):
|
|
563
|
+
print(f"{host[n]}".center(60, "—"))
|
|
564
|
+
PoolExecutorUDP(host[n])
|
|
565
|
+
sys.exit()
|
|
393
566
|
for n in range(len(host)):
|
|
394
567
|
print(f"{host[n]}".center(60, "—"))
|
|
395
568
|
PoolProcessExecutor(host[n])
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import socket
|
|
2
|
+
from termcolor import colored
|
|
3
|
+
from concurrent.futures import ProcessPoolExecutor
|
|
4
|
+
|
|
5
|
+
ports = {
|
|
6
|
+
7: "Echo",
|
|
7
|
+
9: "Discard",
|
|
8
|
+
19: "Chargen",
|
|
9
|
+
37: "Time",
|
|
10
|
+
53: "DNS",
|
|
11
|
+
67: "BOOTPS/DHCP server",
|
|
12
|
+
68: "BOOTPC/DHCP client",
|
|
13
|
+
69: "TFTP",
|
|
14
|
+
123: "NTP",
|
|
15
|
+
137: "NetBIOS-NS",
|
|
16
|
+
138: "NetBIOS-DGM",
|
|
17
|
+
161: "SNMP",
|
|
18
|
+
162: "SNMP-trap",
|
|
19
|
+
389: "LDAP",
|
|
20
|
+
500: "ISAKMP",
|
|
21
|
+
520: "RIP",
|
|
22
|
+
5353: "MDNS",
|
|
23
|
+
546: "DHCPv6 client",
|
|
24
|
+
547: "DHCPv6 server",
|
|
25
|
+
2049: "NFS",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def is_port_open_threads(host, port, timeout=1):
|
|
30
|
+
try:
|
|
31
|
+
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
32
|
+
sock.settimeout(timeout)
|
|
33
|
+
message = b"Test UDP packet"
|
|
34
|
+
address = (host, port)
|
|
35
|
+
|
|
36
|
+
sock.sendto(message, address)
|
|
37
|
+
|
|
38
|
+
try:
|
|
39
|
+
data, server = sock.recvfrom(4096)
|
|
40
|
+
print(f"Response received: {data.decode()} from {server}")
|
|
41
|
+
print(
|
|
42
|
+
f"Open{colored('[√]','green')}-->{ports.get(port)}|{port}| may be listening on host"
|
|
43
|
+
)
|
|
44
|
+
except socket.timeout:
|
|
45
|
+
print(
|
|
46
|
+
f"Closed{colored('[X]','red')}-->{ports.get(port)}|{port}| is likely closed on host"
|
|
47
|
+
)
|
|
48
|
+
except ConnectionRefusedError:
|
|
49
|
+
print("An error occurred while scanning.")
|
|
50
|
+
sock.close()
|
|
51
|
+
except socket.gaierror:
|
|
52
|
+
print("Error: Unable to resolve host name.")
|
|
53
|
+
except socket.error as e:
|
|
54
|
+
print(f"Socket error: {e}")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def PoolExecutorUDP(host):
|
|
58
|
+
with ProcessPoolExecutor(max_workers=None) as executor:
|
|
59
|
+
try:
|
|
60
|
+
for port in ports.keys():
|
|
61
|
+
future = executor.submit(is_port_open_threads, host, port)
|
|
62
|
+
|
|
63
|
+
except Exception as e:
|
|
64
|
+
print(e)
|
snakescan-1.7.5/PKG-INFO
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: SnakeScan
|
|
3
|
-
Version: 1.7.5
|
|
4
|
-
Summary: IPv4 address scanner for collecting address information.Scan or get the IPv4 address from the IPv6 host
|
|
5
|
-
Author: Den*Ram
|
|
6
|
-
Requires-Python: >=3.7
|
|
7
|
-
Description-Content-Type: text/markdown
|
|
8
|
-
License-Expression: MIT
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Requires-Dist: art
|
|
11
|
-
Requires-Dist: tqdm
|
|
12
|
-
Requires-Dist: termcolor
|
|
13
|
-
|
|
14
|
-
<!--
|
|
15
|
-
|
|
16
|
-
This documentation was created with the assistance of the GeekBot language model and Den*Ram
|
|
17
|
-
|
|
18
|
-
-->
|
|
19
|
-
|
|
20
|
-
# 🐍 SnakeScan: Your Go-To Python Port Scanner
|
|
21
|
-
|
|
22
|
-
✨ A powerful and flexible Python library for all your port scanning needs. ✨
|
|
23
|
-
|
|
24
|
-
[](https://pypi.org/project/SnakeScan/)
|
|
25
|
-
|
|
26
|
-
[](https://opensource.org/licenses/MIT)
|
|
27
|
-
|
|
28
|
-
[](https://www.python.org/)
|
|
29
|
-
|
|
30
|
-
[](https://github.com/yourusername/SnakeScan/releases) <!-- Replace yourusername with yours -->
|
|
31
|
-
|
|
32
|
-
[](https://www.python.org/)
|
|
33
|
-
|
|
34
|
-
**SnakeScan** is designed to be both easy to use and incredibly versatile. Whether you're performing basic single port checks or diving into advanced subnet scans and real-time monitoring, SnakeScan has you covered.
|
|
35
|
-
|
|
36
|
-
## 🌟 Key Features:
|
|
37
|
-
|
|
38
|
-
* **Unmatched Flexibility:** Scan single ports, defined ranges, or pre-configured sets with ease.
|
|
39
|
-
|
|
40
|
-
* **Blazing Fast Multithreading:** Leverage multithreading for significantly faster scanning speeds.
|
|
41
|
-
|
|
42
|
-
* **Get the Details:** Retrieve valuable information about IP addresses (supports both IPv4 and IPv6).
|
|
43
|
-
|
|
44
|
-
* **Real-time Monitoring with Watcher:** Keep a constant eye on critical ports and their statuses.
|
|
45
|
-
|
|
46
|
-
* **Intuitive Design:** Clean and simple command-line parameters and API for effortless use.
|
|
47
|
-
|
|
48
|
-
## ⬇️ Installation:
|
|
49
|
-
|
|
50
|
-
Get started with SnakeScan in seconds!
|
|
51
|
-
|
|
52
|
-
bash
|
|
53
|
-
|
|
54
|
-
pip install SnakeScan
|
|
55
|
-
|
|
56
|
-
## ⚙️ Command Line Usage: Unleash the Power!
|
|
57
|
-
|
|
58
|
-
### 💡 Mastering Attribute Usage:
|
|
59
|
-
|
|
60
|
-
* **-p**: Specify ports to scan (single or ranges). **Important:** When specifying ranges, the beginning of the range is only included from the second time. For example, to scan from 80 to 443, use `79-443`. Examples: `snake -p 80,443` or `snake -p 80,3437,8080,20-30,79-443`
|
|
61
|
-
|
|
62
|
-
* **-h**: Display a complete list of available attributes and their descriptions. Example: `snake -h` or `snake -help`
|
|
63
|
-
|
|
64
|
-
* **-sp**: Use a predefined set of common ports for scanning with `ProcessPoolExecutor`. Example: `snake -sp`
|
|
65
|
-
|
|
66
|
-
* **-v**: Show the current version of the SnakeScan library. Example: `snake -v`
|
|
67
|
-
|
|
68
|
-
* **-gs**: Retrieve the SSL/TLS certificate from a specified website. Example: `snake www.google.com -gs` (Without specifying a host, you’ll encounter a connection error).
|
|
69
|
-
|
|
70
|
-
* **-t**: Enable multithreading to speed up your port scans. Example: `snake -t`
|
|
71
|
-
|
|
72
|
-
* **-ch**: Scan a subnet to discover other IP addresses on the network. Example: `snake -ch`
|
|
73
|
-
|
|
74
|
-
* **-l**: Display your public IP address (requires an active internet connection). Example: `snake -l`
|
|
75
|
-
|
|
76
|
-
* **-i**: Show detailed information about a specific IP address (supports both IPv4 and IPv6). Example: `snake www.google.com -i`
|
|
77
|
-
|
|
78
|
-
## 💻 Python Code Integration:
|
|
79
|
-
|
|
80
|
-
### ⏱️ Watcher: The Real-Time Port Sentinel!
|
|
81
|
-
|
|
82
|
-
`Watcher` allows you to continuously monitor the status of a designated port.
|
|
83
|
-
|
|
84
|
-
python
|
|
85
|
-
|
|
86
|
-
from SnakeScan import Watcher
|
|
87
|
-
|
|
88
|
-
watcher = Watcher("localhost", 53, 2) # Host, port, check interval (in seconds)
|
|
89
|
-
|
|
90
|
-
watcher.start() # Begin monitoring!
|
|
91
|
-
|
|
92
|
-
#### `Watcher` Command Set:
|
|
93
|
-
|
|
94
|
-
* `Watcher.start()` - Starts the port monitoring process.
|
|
95
|
-
|
|
96
|
-
* `Watcher.stop()` - Halts the port monitoring process.
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
**Latest Update:** 1.7.5 (Enhanced port designations for even clearer understanding)
|
|
101
|
-
|
|
102
|
-
|
snakescan-1.7.5/README.md
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
This documentation was created with the assistance of the GeekBot language model and Den*Ram
|
|
4
|
-
|
|
5
|
-
-->
|
|
6
|
-
|
|
7
|
-
# 🐍 SnakeScan: Your Go-To Python Port Scanner
|
|
8
|
-
|
|
9
|
-
✨ A powerful and flexible Python library for all your port scanning needs. ✨
|
|
10
|
-
|
|
11
|
-
[](https://pypi.org/project/SnakeScan/)
|
|
12
|
-
|
|
13
|
-
[](https://opensource.org/licenses/MIT)
|
|
14
|
-
|
|
15
|
-
[](https://www.python.org/)
|
|
16
|
-
|
|
17
|
-
[](https://github.com/yourusername/SnakeScan/releases) <!-- Replace yourusername with yours -->
|
|
18
|
-
|
|
19
|
-
[](https://www.python.org/)
|
|
20
|
-
|
|
21
|
-
**SnakeScan** is designed to be both easy to use and incredibly versatile. Whether you're performing basic single port checks or diving into advanced subnet scans and real-time monitoring, SnakeScan has you covered.
|
|
22
|
-
|
|
23
|
-
## 🌟 Key Features:
|
|
24
|
-
|
|
25
|
-
* **Unmatched Flexibility:** Scan single ports, defined ranges, or pre-configured sets with ease.
|
|
26
|
-
|
|
27
|
-
* **Blazing Fast Multithreading:** Leverage multithreading for significantly faster scanning speeds.
|
|
28
|
-
|
|
29
|
-
* **Get the Details:** Retrieve valuable information about IP addresses (supports both IPv4 and IPv6).
|
|
30
|
-
|
|
31
|
-
* **Real-time Monitoring with Watcher:** Keep a constant eye on critical ports and their statuses.
|
|
32
|
-
|
|
33
|
-
* **Intuitive Design:** Clean and simple command-line parameters and API for effortless use.
|
|
34
|
-
|
|
35
|
-
## ⬇️ Installation:
|
|
36
|
-
|
|
37
|
-
Get started with SnakeScan in seconds!
|
|
38
|
-
|
|
39
|
-
bash
|
|
40
|
-
|
|
41
|
-
pip install SnakeScan
|
|
42
|
-
|
|
43
|
-
## ⚙️ Command Line Usage: Unleash the Power!
|
|
44
|
-
|
|
45
|
-
### 💡 Mastering Attribute Usage:
|
|
46
|
-
|
|
47
|
-
* **-p**: Specify ports to scan (single or ranges). **Important:** When specifying ranges, the beginning of the range is only included from the second time. For example, to scan from 80 to 443, use `79-443`. Examples: `snake -p 80,443` or `snake -p 80,3437,8080,20-30,79-443`
|
|
48
|
-
|
|
49
|
-
* **-h**: Display a complete list of available attributes and their descriptions. Example: `snake -h` or `snake -help`
|
|
50
|
-
|
|
51
|
-
* **-sp**: Use a predefined set of common ports for scanning with `ProcessPoolExecutor`. Example: `snake -sp`
|
|
52
|
-
|
|
53
|
-
* **-v**: Show the current version of the SnakeScan library. Example: `snake -v`
|
|
54
|
-
|
|
55
|
-
* **-gs**: Retrieve the SSL/TLS certificate from a specified website. Example: `snake www.google.com -gs` (Without specifying a host, you’ll encounter a connection error).
|
|
56
|
-
|
|
57
|
-
* **-t**: Enable multithreading to speed up your port scans. Example: `snake -t`
|
|
58
|
-
|
|
59
|
-
* **-ch**: Scan a subnet to discover other IP addresses on the network. Example: `snake -ch`
|
|
60
|
-
|
|
61
|
-
* **-l**: Display your public IP address (requires an active internet connection). Example: `snake -l`
|
|
62
|
-
|
|
63
|
-
* **-i**: Show detailed information about a specific IP address (supports both IPv4 and IPv6). Example: `snake www.google.com -i`
|
|
64
|
-
|
|
65
|
-
## 💻 Python Code Integration:
|
|
66
|
-
|
|
67
|
-
### ⏱️ Watcher: The Real-Time Port Sentinel!
|
|
68
|
-
|
|
69
|
-
`Watcher` allows you to continuously monitor the status of a designated port.
|
|
70
|
-
|
|
71
|
-
python
|
|
72
|
-
|
|
73
|
-
from SnakeScan import Watcher
|
|
74
|
-
|
|
75
|
-
watcher = Watcher("localhost", 53, 2) # Host, port, check interval (in seconds)
|
|
76
|
-
|
|
77
|
-
watcher.start() # Begin monitoring!
|
|
78
|
-
|
|
79
|
-
#### `Watcher` Command Set:
|
|
80
|
-
|
|
81
|
-
* `Watcher.start()` - Starts the port monitoring process.
|
|
82
|
-
|
|
83
|
-
* `Watcher.stop()` - Halts the port monitoring process.
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
**Latest Update:** 1.7.5 (Enhanced port designations for even clearer understanding)
|
|
88
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|