Skip to content

Commit 43da6f5

Browse files
committed
20250413_01
1 parent bdbe4bf commit 43da6f5

File tree

8 files changed

+83
-85
lines changed

8 files changed

+83
-85
lines changed

.DS_Store

0 Bytes
Binary file not shown.

README.md

Lines changed: 72 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,82 @@
11
# nt_gui
22

3+
**nt_gui** is a cross-platform network diagnostics tool developed in Go, featuring a graphical user interface (GUI) built with the [Fyne](https://fyne.io) toolkit. It offers a suite of network testing utilities, including ICMP, TCP, DNS, and HTTP pings, along with result visualization and export capabilities.
34

5+
## Features
46

7+
- **ICMP Ping**: Test network reachability using standard ICMP echo requests.
8+
- **TCP Ping**: Check the availability of specific TCP ports on target hosts.
9+
- **DNS Ping**: Resolve domain names and measure DNS query response times.
10+
- **HTTP Ping**: Send HTTP requests to endpoints and monitor response metrics.
11+
- **Result Visualization**: View test results through interactive charts and graphs.
12+
- **History Management**: Access and analyze past test results.
13+
- **CSV Export**: Export test data for external analysis or record-keeping.
514

6-
## License
15+
## Screenshots
16+
17+
### Main Dashboard
18+
![Main Dashboard](assets/ntgui_mainWindow.png)
19+
20+
### TCP Ping Result
21+
![Test Results Chart](assets/ntgui_chart.png)
22+
23+
## Downloads
24+
25+
Precompiled executables for **Windows**, **Linux**, and **macOS** are available on the [Releases page](https://github.com/djian01/nt_gui/releases).
26+
27+
## Installation (from source)
28+
29+
### Prerequisites
30+
31+
- [Go](https://golang.org/dl/) 1.16 or later
32+
33+
### Steps
734

8-
This project is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) with the [Commons Clause](https://commonsclause.com/), restricting commercial use without written permission from the author.
9-
10-
11-
## DB details
12-
13-
14-
** dns **
15-
type: (not in db)
16-
* seq
17-
* Status
18-
DNS_resolver (not in db, can find it in the nt cli in history)
19-
DNS_query (not in db, can find it in the nt cli in history)
20-
* DNS_response
21-
* Record
22-
DNS_protocol (not in db, can find it in the nt cli in history)
23-
* Response_time(ms),
24-
* SendDate,
25-
* SendTime,
26-
Packet Sent(sequence + 1 )
27-
* successsponse,
28-
* failure late,
29-
* MinRTT
30-
* Max RTT
31-
* Avg RTT
32-
* Additional Info
33-
34-
** http **
35-
Type: (not in db)
36-
* seq
37-
* status
38-
Method (not in db, get from ntcli)
39-
url (not in db, get from ntcli)
40-
* Response_code
41-
* response_phase
42-
* response_time(ms)
43-
* sendDate
44-
* sendTime
45-
SessionSent (seq +1)
46-
* sessionsuccess,
47-
* failure rate
48-
* minRTT
49-
* MaxRTT
50-
* AvgRTT
51-
* additinalInfo
52-
53-
** tcp **
54-
Type: (not in db)
55-
* seq
56-
* Status
57-
DestHost (get from ntcli)
58-
DestAddr (get from ntcli)
59-
DestPort (get from ntcli)
60-
payloadsize (get from ntcli)
61-
* RTT (ms)
62-
* SendDate
63-
* SendTime
64-
PacketSent (seq + 1)
65-
* PacketRecv
66-
* Packet Loss
67-
* MinRTT
68-
* AvgRTT
69-
* MaxRTT
70-
* AdditionalInfo
71-
72-
** icmp **
73-
Type (not in db)
74-
* seq
75-
* status
76-
DestHost (get from ntcli)
77-
DesetAddr (get from ntcli)
78-
Payloadsize (get from ntcli)
79-
* RTT (ms)
80-
* SendDate
81-
* SendTime
82-
PacketsSent (seq + 1 )
83-
* Packet Recv
84-
* Packet Loss
85-
* MinRTT
86-
* AvgRTT
87-
* MaxRTT
88-
* AdditionalInfo
35+
1. **Clone the Repository**:
36+
```bash
37+
git clone https://github.com/djian01/nt_gui.git
38+
cd nt_gui
39+
```
8940

41+
2. **Build the Application**:
42+
```bash
43+
go build -o nt_gui
44+
```
9045

46+
3. **Run the Application**:
47+
```bash
48+
./nt_gui
49+
```
50+
51+
## Usage
52+
53+
Upon launching the application:
54+
55+
1. **Select a Test Type**: Choose from ICMP, TCP, DNS, or HTTP ping tests.
56+
2. **Configure Parameters**: Enter target addresses, ports, or URLs as required.
57+
3. **Initiate Test**: Click the "Start" button to begin the network test.
58+
4. **View Results**: Monitor real-time results displayed in the GUI.
59+
5. **Analyze Data**: Use the history and analysis features to review past tests.
60+
6. **Export Data**: Save results in CSV format for further analysis.
61+
62+
## Project Structure
63+
64+
- `UI_main.go`: Entry point and main GUI setup.
65+
- `ICMP_Ping_UI.go`, `TCP_Ping_UI.go`, `DNS_Ping_UI.go`, `HTTP_Ping_UI.go`: UI components for respective tests.
66+
- `ICMP_Ping_Func_Struct.go`, `TCP_Ping_Func_Struct.go`, `DNS_Ping_Func_Struct.go`, `HTTP_Ping_Func_Struct.go`: Backend logic for network tests.
67+
- `Result_Analysis_UI.go`, `Result_Analysis_Func.go`: Components for result analysis and visualization.
68+
- `History_UI.go`, `History_Func_Struct.go`: Manage and display test history.
69+
- `Function_CSVExport.go`: Handles exporting results to CSV files.
70+
- `assets/`: Contains application assets like icons and images.
71+
- `pkg/`: Additional packages and modules used in the application.
72+
73+
## Dependencies
74+
75+
- [Fyne](https://fyne.io): GUI toolkit for Go.
76+
- Standard Go libraries for networking and file operations.
77+
78+
## License
9179

80+
This project is licensed under the **Apache License 2.0 with the Commons Clause**, restricting commercial use without written permission from the author.
9281

82+
See the [LICENSE](LICENSE) file for full terms and conditions.

Resource_Shared_svg.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UI_main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ func makeUI(w fyne.Window, a fyne.App, db *sql.DB, entryChan chan ntdb.DbEntry,
2929
}
3030

3131
// ToolbarContainer
32+
infoIcon := theme.NewThemedResource(resourceInfoIconSvg)
33+
3234
ToolbarWidget := widget.NewToolbar(
3335
widget.NewToolbarSpacer(),
3436
widget.NewToolbarAction(theme.RadioButtonCheckedIcon(), func() {
@@ -41,7 +43,7 @@ func makeUI(w fyne.Window, a fyne.App, db *sql.DB, entryChan chan ntdb.DbEntry,
4143
fyne.CurrentApp().Settings().SetTheme(theme.LightTheme())
4244
}
4345
}),
44-
widget.NewToolbarAction(theme.HelpIcon(), func() {
46+
widget.NewToolbarAction(infoIcon, func() {
4547

4648
// fyne bundle -append Icon.png >> Resource_Shared.go
4749
appImage := canvas.NewImageFromResource(resourceIconPng) // auto-generated name

assets/infoIcon.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/ntgui_chart.png

524 KB
Loading

assets/ntgui_mainWindow.png

205 KB
Loading

main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ var (
2626
)
2727

2828
// app Version
29-
var appVersion string = "1.0.0"
29+
var appVersion string = "1.0.1"
3030

3131
// Create a global cancelable context
3232
var appCtx, cancelFunc = context.WithCancel(context.Background())
@@ -97,7 +97,7 @@ func main() {
9797
}
9898
}()
9999

100-
a := app.NewWithID("local.ntgui")
100+
a := app.NewWithID("net.packetstreams.ntgui")
101101

102102
// Ensure cleanup when the app closes
103103
a.Lifecycle().SetOnStopped(func() {

0 commit comments

Comments
 (0)