Skip to content

imransom29/network-diagnostics-troubleshooting-toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 myLG - Network Diagnostics & Troubleshooting Toolkit

Go Version License Build Status Docker

A comprehensive open-source network diagnostic utility that combines multiple network probes into one powerful tool

πŸ“‹ Overview

myLG is an advanced network diagnostics and troubleshooting toolkit written in Go that consolidates various network monitoring and analysis functions into a single, efficient command-line interface. Designed for network administrators, DevOps engineers, and security professionals, myLG provides real-time insights into network performance, connectivity, and infrastructure health.

✨ Key Features

πŸ” Network Diagnostics

  • Local ping and real-time traceroute with visual feedback
  • HTTP/HTTPS ping (GET, POST, HEAD methods) for web service monitoring
  • Packet analyzer for TCP/IP and other network protocols
  • Port scanning capabilities for security assessment
  • Network LAN Discovery to identify devices on local networks

🌍 Global Network Intelligence

  • 200+ countries DNS Lookup information
  • Popular looking glasses integration (Telia, Level3, NTT, Cogent, KPN)
  • BGP route visualization through major network providers
  • RIPE database queries (ASN, IP/CIDR information)
  • PeeringDB integration for peering policy and network information

πŸ“Š Management & Monitoring

  • Quick NMS (Network Management System) with SNMP support
  • Internet Speed Test for bandwidth analysis
  • Web dashboard for visual monitoring and analytics
  • Real-time network statistics and performance metrics

πŸ’» Advanced CLI Features

  • Interactive shell with vi and emacs mode support
  • CLI auto-complete and command history
  • Configurable options for customization
  • Direct shell access to all diagnostic commands
  • Colorized output for enhanced readability

πŸš€ Quick Start

Prerequisites

  • Go 1.12 or higher
  • libpcap-dev (for packet capture functionality)

Installation

From Source

git clone https://github.com/mehrdadrad/mylg.git
cd mylg
go build -o mylg mylg.go
sudo ./mylg

Using Docker

docker build -t mylg .
docker run -it --privileged mylg

Using Go Get

go get github.com/mehrdadrad/mylg
mylg

πŸ“– Usage Examples

Basic Network Diagnostics

# Ping a host
mylg> ping google.com

# Trace route to destination
mylg> trace 8.8.8.8

# HTTP ping with custom method
mylg> http ping https://api.github.com -m POST

Looking Glass Integration

# Use Telia looking glass
mylg> lg telia ping 1.1.1.1

# BGP route query through Level3
mylg> lg level3 bgp 192.168.1.0/24

Advanced Features

# Network discovery
mylg> disc 192.168.1.0/24

# Port scanning
mylg> scan example.com 80,443,22

# DNS lookup across multiple countries
mylg> ns example.com all

# Packet capture and analysis
mylg> packet eth0 tcp port 80

Web Dashboard

# Start web dashboard
mylg> web start

# Access dashboard at http://localhost:8080

πŸ—οΈ Architecture

myLG is built with a modular architecture consisting of:

  • CLI Interface (cli/) - Interactive command-line interface
  • Network Probes (icmp/, http/) - Ping, traceroute, HTTP monitoring
  • Looking Glasses (lg/) - Integration with major network providers
  • Packet Analysis (packet/) - Network packet capture and analysis
  • Services (services/) - Web dashboard and HTTP API
  • Network Discovery (disc/) - LAN device discovery
  • Speed Testing (speedtest/) - Bandwidth measurement

πŸ› οΈ Development

Project Structure

mylg/
β”œβ”€β”€ cli/          # Command-line interface
β”œβ”€β”€ icmp/         # ICMP operations (ping, traceroute)
β”œβ”€β”€ http/         # HTTP/HTTPS monitoring
β”œβ”€β”€ lg/           # Looking glass integrations
β”œβ”€β”€ packet/       # Packet capture and analysis
β”œβ”€β”€ nms/          # Network management system
β”œβ”€β”€ ns/           # DNS and name services
β”œβ”€β”€ disc/         # Network discovery
β”œβ”€β”€ scan/         # Port scanning
β”œβ”€β”€ services/     # Web services and dashboard
β”œβ”€β”€ speedtest/    # Internet speed testing
└── whois/        # WHOIS queries

Running Tests

go test ./...

Building

go build -o mylg mylg.go

🐳 Docker Support

A Dockerfile is provided for containerized deployments:

docker build -t mylg .
docker run -it --net=host --privileged mylg

πŸ“Š Configuration

myLG supports configuration through:

  • Command-line flags
  • Configuration files
  • Environment variables
  • Interactive CLI settings

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Thanks to all the network providers for their looking glass services
  • The Go community for excellent networking libraries
  • Contributors who help improve this tool

πŸ“ž Support

πŸ”— Related Projects


⭐ Star this repository if it helped you!

Made with ❀️ by imransom29

About

myLG (My Looking Glass) is an open-source command-line network diagnostic tool written in Go that combines multiple network probes into one utility. It provides features like ping, traceroute, port scanning, packet analysis, DNS lookup, BGP queries, WHOIS lookups, and internet speed testing. It integrates with popular looking glasses.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages