|
1 | 1 | # nt_gui
|
2 | 2 |
|
| 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. |
3 | 4 |
|
| 5 | +## Features |
4 | 6 |
|
| 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. |
5 | 14 |
|
6 |
| -## License |
| 15 | +## Screenshots |
| 16 | + |
| 17 | +### Main Dashboard |
| 18 | + |
| 19 | + |
| 20 | +### TCP Ping Result |
| 21 | + |
| 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 |
7 | 34 |
|
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 | + ``` |
89 | 40 |
|
| 41 | +2. **Build the Application**: |
| 42 | + ```bash |
| 43 | + go build -o nt_gui |
| 44 | + ``` |
90 | 45 |
|
| 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 |
91 | 79 |
|
| 80 | +This project is licensed under the **Apache License 2.0 with the Commons Clause**, restricting commercial use without written permission from the author. |
92 | 81 |
|
| 82 | +See the [LICENSE](LICENSE) file for full terms and conditions. |
0 commit comments