https://github.com/chutrunganh/project-i-collect-snmp-data
This project is a JavaFX application that enables users to perform SNMP operations like GET, GETNEXT, and WALK on network devices, and view the results in a human-readable format.
https://github.com/chutrunganh/project-i-collect-snmp-data
agent hust it3910e java mib mib-browser project project-1 project-i project1 snmp snmp-mib-parser
Last synced: 22 days ago
JSON representation
This project is a JavaFX application that enables users to perform SNMP operations like GET, GETNEXT, and WALK on network devices, and view the results in a human-readable format.
- Host: GitHub
- URL: https://github.com/chutrunganh/project-i-collect-snmp-data
- Owner: chutrunganh
- License: mit
- Created: 2024-04-08T05:58:24.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-23T09:14:18.000Z (about 1 month ago)
- Last Synced: 2025-03-23T10:22:28.531Z (about 1 month ago)
- Topics: agent, hust, it3910e, java, mib, mib-browser, project, project-1, project-i, project1, snmp, snmp-mib-parser
- Language: Java
- Homepage:
- Size: 21.3 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
[](https://git.io/typing-svg)
![]()
# Collect SNMP Data From Server And Network Devices
![]()
[](https://opensource.org/licenses/MIT)


![]()
![]()
# Overview π
This SNMP Browser is a simple Java-based application designed to collect SNMP data
from network devices. It allows users to perform SNMP operations such as
GET, GETNEXT, and WALK requests, and then parse the raw data into a more readable format,
displaying it using JavaFX. The primary aim is to manage and monitor network devices in the simplest way.This application was developed as part of the Course Project 1 for the semester 20232 at [SOICT HUST](https://soict.hust.edu.vn/)
# Installation βοΈ
There are several ways you can try our application:
1. **Download the JAR file (Recommended)**: Download directly from the [Releases page](https://github.com/chutrunganh/Project-I-Collect-SNMP-Data/releases/tag/v1.1.2). Ensure you run the app with Java 21.
2. **Build from Source**: Follow the instructions to build the project from [source](https://github.com/chutrunganh/Project-I-Collect-SNMP-Data?tab=readme-ov-file#build-from-source).
3. **Using Docker (Experimental)**: Note that this method is not fully functional due to configuration issues.
In this Docker version, MIB viewing works. However, SNMP requests are non-functional because I couldn't configure the application to reach the outside network. To try the application, execute the following command to pull and run the Docker image:
```bash
docker run -p 5900:5900 chutrunganh/snmp_browser:1.1.2
```
Then, use a VNC viewer (e.g TigerVNC Viewer) to access the application GUI on localhost:5900### Build from source
1. Clone the repository
```bash
git clone https://github.com/chutrunganh/Project-I-Collect-SNMP-Data.git
```
2. Install dependencies- Ensure you have Java SDK (version 21.0.3 or later) and JavaFX installed to run the application.
Use the following VM options to run the
application: ```--module-path Path_To_JavaFX/lib --add-modules javafx.controls,javafx.fxml```.
- Additional dependencies:
- fasterxml.jackson.core.databind for reading JSON files
- snmp4j for SNMP operations
- pysnmp-pysmi for converting .mib files to JSON (only needed if you intend to recompile MIB files)All dependencies are included in the `pom.xml` file. You can install them automatically using Maven.
3. Run the application
Run the `Main.java` in the `src/main/java/Main.java` directory to start the application.
# FeatureπΉοΈ- Perform SNMP operations (currently supports only GET, GETNEXT, WALK).
- **GET**: Retrieve the value of a single OID.
![]()
- **GETNEXT**: Retrieve the value of the next OID in the MIB tree.
![]()
- **WALK**: Retrieve the values of all OIDs in the MIB subtree.
- View MIB files in hierarchy structure (currently supports only .json files; if you have .mib
files, you can convert them using the provided script. There are over 70 MIB files already
available in the `MIB Databases` directory, or users can import their own MIB files.
- Display formatted results, with options to search and save these results to a file.
---
Like this project? Give a star π to SNMP Browser and make it even stronger! πͺ---
# Code Structure ποΈ
We designed our code following the Maven standard structure and the Model-View-Controller (MVC) pattern. Here is the
main structure and their short purpose:
```
Project-I-Collect-SNMP-Data/
βββ src/
βββ main/
β βββ java/
β β βββ Control/
β β β βββ MainController.java
β β β βββ ARowInQueryTable.java # Used to define a row structure in the query table
β β βββ Model/
β β βββ MIBTreeStructure/
β β β βββ Node.java # Used to define a node in the MIB tree
β β β βββ BuildMIBTree.java # Used to build the MIB tree from the JSON file
β β β βββ MibRootOidFinder.java # Used to find the root OID of a MIB file
β β β βββ MibLoader.java # Used to load MIB files for GET NEXT and Walk
β β βββ SNMPRequest/
β β βββ SNMPGet.java
β β βββ SNMPGetNext.java
β β βββ SNMPWalk.java
β β βββ SnmpResponseFormat.java # Used to format the raw data to a more readable format
β βββ resources/
β βββ Images/
β βββ styles.css # Use to render the Dark Mode
β βββ View/ # Contains the FXML files for the GUI
β
β
βββ test/java/TestFiles # Contains test files for individual functions of the project
```The project also incorporates the following components:
- `MIB Databases` directory: This directory houses the MIB files that the application utilizes to
gather information. The MIB files are in JSON format.- `GetJSONFiles` script: This script is employed to transform MIB ASN1 files into JSON format files.
If you wish to recompile the MIB files, adjust the `MIB_DIR` and `DES_DIR` variables in the script to match your case.- `Docs` directory: contains all the documents related to the project, including the project report, SNMP Configuration and the project structure diagram in Astah UML file.
# License π
Distribution of this project is under the MIT License.
See [LICENSE](https://github.com/chutrunganh/Project_I_Collect_SNMP_Data?tab=MIT-1-ov-file) for more information.# Documentation π
For more details about both SNMP theory and our application, you can check our [Project Report](https://github.com/chutrunganh/Project-I-Collect-SNMP-Data/blob/master/Docs/Project_I_Report.pdf).# Contact π§
This project is maintained by: Chu Trung Anh - [Email](mailto:[email protected]).Feel free to contact me if you have any question or suggestion.