ipmg 1.0.2__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.
ipmg-1.0.2/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 SAMEER ALAM
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
ipmg-1.0.2/PKG-INFO ADDED
@@ -0,0 +1,348 @@
1
+ Metadata-Version: 2.4
2
+ Name: ipmg
3
+ Version: 1.0.2
4
+ Summary: IP Management & Ping Monitoring CLI Tool
5
+ Author: Sameer Alam
6
+ License: MIT
7
+ Requires-Python: >=3.8
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: pandas
11
+ Requires-Dist: tqdm
12
+ Requires-Dist: openpyxl
13
+ Requires-Dist: rich
14
+ Provides-Extra: dev
15
+ Requires-Dist: pytest; extra == "dev"
16
+ Requires-Dist: black; extra == "dev"
17
+ Requires-Dist: ruff; extra == "dev"
18
+ Dynamic: license-file
19
+
20
+ # IPMG — IP Management & Ping Monitoring Tool
21
+
22
+ ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
23
+ ![License](https://img.shields.io/badge/license-MIT-green)
24
+ ![Platform](https://img.shields.io/badge/platform-Mac%20%7C%20Linux%20%7C%20Windows-lightgrey)
25
+ ![CLI](https://img.shields.io/badge/tool-ipmg-orange)
26
+ ![CI Ready](https://img.shields.io/badge/formatting-ruff%20%7C%20black-yellow)
27
+ ![Tests](https://img.shields.io/badge/tests-pytest-brightgreen)
28
+
29
+ ---
30
+
31
+ **IPMG (IP Management Tool)** is a modern, modular, enterprise-ready network scanner and monitoring utility.
32
+ It replaces the legacy `ip_pinger.py` script with a **clean package architecture**, CLI tooling, and automated workflows.
33
+
34
+ Designed for:
35
+
36
+ - Network administrators
37
+ - Systems engineers
38
+ - Cybersecurity teams
39
+ - DevOps and SREs
40
+
41
+ IPMG supports:
42
+
43
+ - **Subnet auto-discovery**
44
+ - **Parallel pinging with thread pools**
45
+ - **Hostname resolution**
46
+ - **Multi-format reporting (XLSX/CSV/JSON)**
47
+ - **Scheduled recurrent scans**
48
+ - **Auto-generated sample Excel input**
49
+ - **Colorized CLI output**
50
+ - **Modular testable architecture**
51
+
52
+ ---
53
+
54
+ ## ⚠️ Security Disclaimer
55
+
56
+ > **Do NOT use this tool on networks without explicit authorization.**
57
+ > Always obtain written approval from your organization's **Cybersecurity / Network Security team**.
58
+ > Unauthorized scanning may violate internal policies or law.
59
+
60
+ IPMG includes a built-in disclaimer shown at runtime (`security.py`).
61
+
62
+ ---
63
+
64
+ # Features
65
+
66
+ ### ✔ Modular Python package (`src/ipmg`)
67
+
68
+ Not a single script anymore — now a clean, testable package.
69
+
70
+ ### ✔ CLI Command: `ipmg`
71
+
72
+ Installed system-wide or via uv.
73
+
74
+ ### ✔ Auto Subnet Discovery
75
+
76
+ Scan your `/24` instantly:
77
+
78
+ ```
79
+ ipmg --discover
80
+ ```
81
+
82
+ ### ✔ Multi-threaded high performance
83
+
84
+ Scans hundreds of hosts in seconds.
85
+
86
+ ### ✔ Auto Sample Excel Generation
87
+
88
+ If the input file is missing:
89
+
90
+ ```
91
+ ip_list.xlsx
92
+ ```
93
+
94
+ is created automatically.
95
+
96
+ ### ✔ Supports multiple output formats
97
+
98
+ ```
99
+ --formats xlsx csv json
100
+ ```
101
+
102
+ ### ✔ Hostname resolution
103
+
104
+ ```
105
+ --resolve
106
+ ```
107
+
108
+ ### ✔ Scheduled scanning
109
+
110
+ ```
111
+ --interval 5
112
+ ```
113
+
114
+ Runs every 5 minutes.
115
+
116
+ ### ✔ Fully tested (pytest) + formatted (ruff/black)
117
+
118
+ ---
119
+
120
+ # Installation
121
+
122
+ ## Option 1 — Install via uv (recommended)
123
+
124
+ ```
125
+ uv tool install git+https://github.com/sameeralam3127/ipmg.git
126
+ ```
127
+
128
+ Test:
129
+
130
+ ```
131
+ ipmg --help
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Option 2 — Install via pip (editable, dev mode)
137
+
138
+ ```bash
139
+ git clone https://github.com/sameeralam3127/ipmg.git
140
+ cd IP_Management
141
+
142
+ pip install -e .
143
+ ```
144
+
145
+ Now:
146
+
147
+ ```
148
+ ipmg --help
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Option 3 — Install using curl installer
154
+
155
+ ```bash
156
+ curl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bash
157
+ ```
158
+
159
+ This script:
160
+
161
+ - Installs uv if missing
162
+ - Installs ipmg globally into uv
163
+
164
+ ---
165
+
166
+ # Usage
167
+
168
+ ### Help
169
+
170
+ ```
171
+ ipmg --help
172
+ ```
173
+
174
+ ---
175
+
176
+ ## Basic Example (using default input)
177
+
178
+ ```
179
+ ipmg
180
+ ```
181
+
182
+ If `ip_list.xlsx` does not exist → it will be created with sample IPs.
183
+
184
+ ---
185
+
186
+ ## Scan a custom input file
187
+
188
+ ```
189
+ ipmg --input network_devices.xlsx
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Auto-discover LAN subnet
195
+
196
+ ```
197
+ ipmg --discover
198
+ ```
199
+
200
+ ---
201
+
202
+ ## Export results to CSV + XLSX
203
+
204
+ ```
205
+ ipmg --formats csv xlsx
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Resolve hostnames (PTR)
211
+
212
+ ```
213
+ ipmg --resolve
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Run every 10 minutes
219
+
220
+ ```
221
+ ipmg --interval 10
222
+ ```
223
+
224
+ ---
225
+
226
+ # Testing
227
+
228
+ Run all tests:
229
+
230
+ ```
231
+ uv run pytest
232
+ ```
233
+
234
+ ---
235
+
236
+ # Formatting & Linting
237
+
238
+ ### Ruff (lint + autofix)
239
+
240
+ ```
241
+ uv run ruff check . --fix
242
+ ```
243
+
244
+ ### Ruff formatter (PEP-style formatting)
245
+
246
+ ```
247
+ uv run ruff format .
248
+ ```
249
+
250
+ ### Black (formatter)
251
+
252
+ ```
253
+ uv run black .
254
+ ```
255
+
256
+ ---
257
+
258
+ # Pre-commit Hooks (auto-format on commit)
259
+
260
+ Install:
261
+
262
+ ```
263
+ uv run pre-commit install
264
+ ```
265
+
266
+ Run manually:
267
+
268
+ ```
269
+ uv run pre-commit run --all-files
270
+ ```
271
+
272
+ ---
273
+
274
+ # Sample Output Summary
275
+
276
+ ```
277
+ === IPMG Summary ===
278
+ Active: 132
279
+ Inactive: 12
280
+ Unreachable: 4
281
+ Timeout: 2
282
+
283
+ Success Rate: 88.00%
284
+ ```
285
+
286
+ ---
287
+
288
+ # Input File Format (Excel or CSV)
289
+
290
+ Example:
291
+
292
+ | IP Address |
293
+ | ----------- |
294
+ | 192.168.1.1 |
295
+ | 10.0.0.1 |
296
+ | 8.8.8.8 |
297
+
298
+ ---
299
+
300
+ # Output File Format
301
+
302
+ | IP Address | Status | Latency | Hostname | Timestamp |
303
+ | ---------- | ------ | ------- | ---------- | ------------------- |
304
+ | 8.8.8.8 | Active | 12.5 ms | dns.google | 2025-10-12 18:40:15 |
305
+
306
+ ---
307
+
308
+ # Troubleshooting
309
+
310
+ ### **Command not found: ipmg**
311
+
312
+ Solution:
313
+
314
+ ```
315
+ pip install -e .
316
+ ```
317
+
318
+ ### **Permission denied output folder**
319
+
320
+ Run inside a writeable directory or use:
321
+
322
+ ```
323
+ sudo ipmg ...
324
+ ```
325
+
326
+ ### **Hostname Unresolvable**
327
+
328
+ Likely missing DNS PTR records.
329
+
330
+ ---
331
+
332
+ # macOS GUI (PingMonitorApp – Beta)
333
+
334
+ A native macOS interface for IPMG is under active development.
335
+
336
+ Download Beta:
337
+
338
+ 👉 [https://github.com/sameeralam3127/IP_Management/releases/tag/macOS](https://github.com/sameeralam3127/IP_Management/releases/tag/macOS)
339
+
340
+ ---
341
+
342
+ # License
343
+
344
+ MIT License — free for commercial and personal use.
345
+
346
+ ---
347
+
348
+ Made with ❤️ using Python & uv.
ipmg-1.0.2/README.md ADDED
@@ -0,0 +1,329 @@
1
+ # IPMG — IP Management & Ping Monitoring Tool
2
+
3
+ ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
4
+ ![License](https://img.shields.io/badge/license-MIT-green)
5
+ ![Platform](https://img.shields.io/badge/platform-Mac%20%7C%20Linux%20%7C%20Windows-lightgrey)
6
+ ![CLI](https://img.shields.io/badge/tool-ipmg-orange)
7
+ ![CI Ready](https://img.shields.io/badge/formatting-ruff%20%7C%20black-yellow)
8
+ ![Tests](https://img.shields.io/badge/tests-pytest-brightgreen)
9
+
10
+ ---
11
+
12
+ **IPMG (IP Management Tool)** is a modern, modular, enterprise-ready network scanner and monitoring utility.
13
+ It replaces the legacy `ip_pinger.py` script with a **clean package architecture**, CLI tooling, and automated workflows.
14
+
15
+ Designed for:
16
+
17
+ - Network administrators
18
+ - Systems engineers
19
+ - Cybersecurity teams
20
+ - DevOps and SREs
21
+
22
+ IPMG supports:
23
+
24
+ - **Subnet auto-discovery**
25
+ - **Parallel pinging with thread pools**
26
+ - **Hostname resolution**
27
+ - **Multi-format reporting (XLSX/CSV/JSON)**
28
+ - **Scheduled recurrent scans**
29
+ - **Auto-generated sample Excel input**
30
+ - **Colorized CLI output**
31
+ - **Modular testable architecture**
32
+
33
+ ---
34
+
35
+ ## ⚠️ Security Disclaimer
36
+
37
+ > **Do NOT use this tool on networks without explicit authorization.**
38
+ > Always obtain written approval from your organization's **Cybersecurity / Network Security team**.
39
+ > Unauthorized scanning may violate internal policies or law.
40
+
41
+ IPMG includes a built-in disclaimer shown at runtime (`security.py`).
42
+
43
+ ---
44
+
45
+ # Features
46
+
47
+ ### ✔ Modular Python package (`src/ipmg`)
48
+
49
+ Not a single script anymore — now a clean, testable package.
50
+
51
+ ### ✔ CLI Command: `ipmg`
52
+
53
+ Installed system-wide or via uv.
54
+
55
+ ### ✔ Auto Subnet Discovery
56
+
57
+ Scan your `/24` instantly:
58
+
59
+ ```
60
+ ipmg --discover
61
+ ```
62
+
63
+ ### ✔ Multi-threaded high performance
64
+
65
+ Scans hundreds of hosts in seconds.
66
+
67
+ ### ✔ Auto Sample Excel Generation
68
+
69
+ If the input file is missing:
70
+
71
+ ```
72
+ ip_list.xlsx
73
+ ```
74
+
75
+ is created automatically.
76
+
77
+ ### ✔ Supports multiple output formats
78
+
79
+ ```
80
+ --formats xlsx csv json
81
+ ```
82
+
83
+ ### ✔ Hostname resolution
84
+
85
+ ```
86
+ --resolve
87
+ ```
88
+
89
+ ### ✔ Scheduled scanning
90
+
91
+ ```
92
+ --interval 5
93
+ ```
94
+
95
+ Runs every 5 minutes.
96
+
97
+ ### ✔ Fully tested (pytest) + formatted (ruff/black)
98
+
99
+ ---
100
+
101
+ # Installation
102
+
103
+ ## Option 1 — Install via uv (recommended)
104
+
105
+ ```
106
+ uv tool install git+https://github.com/sameeralam3127/ipmg.git
107
+ ```
108
+
109
+ Test:
110
+
111
+ ```
112
+ ipmg --help
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Option 2 — Install via pip (editable, dev mode)
118
+
119
+ ```bash
120
+ git clone https://github.com/sameeralam3127/ipmg.git
121
+ cd IP_Management
122
+
123
+ pip install -e .
124
+ ```
125
+
126
+ Now:
127
+
128
+ ```
129
+ ipmg --help
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Option 3 — Install using curl installer
135
+
136
+ ```bash
137
+ curl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bash
138
+ ```
139
+
140
+ This script:
141
+
142
+ - Installs uv if missing
143
+ - Installs ipmg globally into uv
144
+
145
+ ---
146
+
147
+ # Usage
148
+
149
+ ### Help
150
+
151
+ ```
152
+ ipmg --help
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Basic Example (using default input)
158
+
159
+ ```
160
+ ipmg
161
+ ```
162
+
163
+ If `ip_list.xlsx` does not exist → it will be created with sample IPs.
164
+
165
+ ---
166
+
167
+ ## Scan a custom input file
168
+
169
+ ```
170
+ ipmg --input network_devices.xlsx
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Auto-discover LAN subnet
176
+
177
+ ```
178
+ ipmg --discover
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Export results to CSV + XLSX
184
+
185
+ ```
186
+ ipmg --formats csv xlsx
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Resolve hostnames (PTR)
192
+
193
+ ```
194
+ ipmg --resolve
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Run every 10 minutes
200
+
201
+ ```
202
+ ipmg --interval 10
203
+ ```
204
+
205
+ ---
206
+
207
+ # Testing
208
+
209
+ Run all tests:
210
+
211
+ ```
212
+ uv run pytest
213
+ ```
214
+
215
+ ---
216
+
217
+ # Formatting & Linting
218
+
219
+ ### Ruff (lint + autofix)
220
+
221
+ ```
222
+ uv run ruff check . --fix
223
+ ```
224
+
225
+ ### Ruff formatter (PEP-style formatting)
226
+
227
+ ```
228
+ uv run ruff format .
229
+ ```
230
+
231
+ ### Black (formatter)
232
+
233
+ ```
234
+ uv run black .
235
+ ```
236
+
237
+ ---
238
+
239
+ # Pre-commit Hooks (auto-format on commit)
240
+
241
+ Install:
242
+
243
+ ```
244
+ uv run pre-commit install
245
+ ```
246
+
247
+ Run manually:
248
+
249
+ ```
250
+ uv run pre-commit run --all-files
251
+ ```
252
+
253
+ ---
254
+
255
+ # Sample Output Summary
256
+
257
+ ```
258
+ === IPMG Summary ===
259
+ Active: 132
260
+ Inactive: 12
261
+ Unreachable: 4
262
+ Timeout: 2
263
+
264
+ Success Rate: 88.00%
265
+ ```
266
+
267
+ ---
268
+
269
+ # Input File Format (Excel or CSV)
270
+
271
+ Example:
272
+
273
+ | IP Address |
274
+ | ----------- |
275
+ | 192.168.1.1 |
276
+ | 10.0.0.1 |
277
+ | 8.8.8.8 |
278
+
279
+ ---
280
+
281
+ # Output File Format
282
+
283
+ | IP Address | Status | Latency | Hostname | Timestamp |
284
+ | ---------- | ------ | ------- | ---------- | ------------------- |
285
+ | 8.8.8.8 | Active | 12.5 ms | dns.google | 2025-10-12 18:40:15 |
286
+
287
+ ---
288
+
289
+ # Troubleshooting
290
+
291
+ ### **Command not found: ipmg**
292
+
293
+ Solution:
294
+
295
+ ```
296
+ pip install -e .
297
+ ```
298
+
299
+ ### **Permission denied output folder**
300
+
301
+ Run inside a writeable directory or use:
302
+
303
+ ```
304
+ sudo ipmg ...
305
+ ```
306
+
307
+ ### **Hostname Unresolvable**
308
+
309
+ Likely missing DNS PTR records.
310
+
311
+ ---
312
+
313
+ # macOS GUI (PingMonitorApp – Beta)
314
+
315
+ A native macOS interface for IPMG is under active development.
316
+
317
+ Download Beta:
318
+
319
+ 👉 [https://github.com/sameeralam3127/IP_Management/releases/tag/macOS](https://github.com/sameeralam3127/IP_Management/releases/tag/macOS)
320
+
321
+ ---
322
+
323
+ # License
324
+
325
+ MIT License — free for commercial and personal use.
326
+
327
+ ---
328
+
329
+ Made with ❤️ using Python & uv.