# hmbsbige/nattypetester

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hmbsbige-nattypetester).**

4,438 stars · 259 forks · C# · mit

## Links

- GitHub: https://github.com/HMBSbige/NatTypeTester
- awesome-repositories: https://awesome-repositories.com/repository/hmbsbige-nattypetester.md

## Topics

`nat` `rfc3489` `rfc5389` `rfc5780` `rfc8489` `stun`

## Description

NatTypeTester is a network diagnostic tool that identifies a host's network address translation (NAT) behavior by querying STUN servers. It classifies NAT types and tests connectivity across multiple transport layers, including UDP, TCP, TLS, and DTLS, to evaluate peer-to-peer communication capabilities.

The tool distinguishes itself by probing connectivity over four separate protocols—UDP, TCP, TLS-over-TCP, and DTLS-over-UDP—using STUN binding requests. This multi-protocol approach provides a comprehensive assessment of a host's ability to establish direct connections with other devices in various network environments.

NatTypeTester implements the STUN protocol to discover public IP addresses and detect NAT behavior, offering a complete NAT type classification algorithm. It supports cross-platform network diagnostics, enabling users to analyze transport-layer and IP-version compatibility across different operating systems.

## Tags

### Networking & Communication

- [Network Diagnostic Utilities](https://awesome-repositories.com/f/networking-communication/network-diagnostic-utilities.md) — A utility for analyzing transport layer and IP version compatibility across different network environments.
- [Cross-Platform Networking](https://awesome-repositories.com/f/networking-communication/cross-platform-networking.md) — Provides transport layer and IP version compatibility analysis across different operating systems.
- [NAT Diagnostics](https://awesome-repositories.com/f/networking-communication/nat-diagnostics.md) — Tests a host's network address translation behavior by querying a STUN server and classifying the result. ([source](https://cdn.jsdelivr.net/gh/hmbsbige/nattypetester@master/README.md))
- [Multi-Protocol NAT Type Tests](https://awesome-repositories.com/f/networking-communication/nat-diagnostics/multi-protocol-nat-type-tests.md) — Tests the host's NAT type by sending STUN probes over UDP, TCP, TLS, and DTLS. ([source](https://github.com/HMBSbige/NatTypeTester/tree/master/docs/))
- [NAT Type Classification Algorithms](https://awesome-repositories.com/f/networking-communication/nat-diagnostics/nat-type-classification-algorithms.md) — Classifies NAT types by analyzing STUN binding responses across multiple transport layers.
- [STUN-Based NAT Type Testers](https://awesome-repositories.com/f/networking-communication/nat-diagnostics/stun-based-nat-type-testers.md) — Uses the STUN protocol to identify NAT types and test connectivity over UDP, TCP, TLS, and DTLS.
- [STUN Protocol Implementations](https://awesome-repositories.com/f/networking-communication/network-protocol-implementations/stun-protocol-implementations.md) — Implements the STUN protocol to discover public IP addresses and detect NAT behavior.
- [Connectivity Analyzers](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/connectivity-analyzers.md) — Evaluates network compatibility to determine the ability to establish direct connections between devices.
- [NAT Type Detectors](https://awesome-repositories.com/f/networking-communication/udp-protocol-analysis/stun-protocol-implementations/nat-type-detectors.md) — Identifies NAT behavior by querying a STUN server and classifying the result.
- [Testers](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity/testers.md) — Verifies whether a host can establish direct connections by testing multiple transport protocols.
- [Transport Layer Compatibility Evaluators](https://awesome-repositories.com/f/networking-communication/networking-libraries/custom-network-transport-layers/transport-layer-compatibility-evaluators.md) — Assesses a host's ability to communicate across different transport layers and IP versions.
- [TLS-Encrypted TCP Connectivity Probes](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/reverse-tls-connections/tls-encrypted-tcp-connectivity-probes.md) — Verifies whether a host can establish TLS-encrypted TCP connections through a STUN binding request. ([source](https://cdn.jsdelivr.net/gh/hmbsbige/nattypetester@master/README.md))
- [TCP Connectivity Probes](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/tcp-client-connections/tcp-connectivity-probes.md) — Verifies whether a host can establish TCP connections through a STUN binding request. ([source](https://cdn.jsdelivr.net/gh/hmbsbige/nattypetester@master/README.md))

### System Administration & Monitoring

- [Peer-to-Peer Connectivity Probes](https://awesome-repositories.com/f/system-administration-monitoring/multi-protocol-probing-engines/peer-to-peer-connectivity-probes.md) — Tests connectivity across UDP, TCP, TLS, and DTLS to evaluate peer-to-peer networking compatibility.

### Software Engineering & Architecture

- [UDP Connectivity Probes](https://awesome-repositories.com/f/software-engineering-architecture/request-response-exchanges/udp-connectivity-probes.md) — Verifies whether a host can send and receive UDP datagrams through a STUN binding request. ([source](https://cdn.jsdelivr.net/gh/hmbsbige/nattypetester@master/README.md))
- [DTLS-Encrypted](https://awesome-repositories.com/f/software-engineering-architecture/request-response-exchanges/udp-connectivity-probes/dtls-encrypted.md) — Verifies whether a host can establish DTLS-encrypted UDP connections through a STUN binding request. ([source](https://cdn.jsdelivr.net/gh/hmbsbige/nattypetester@master/README.md))
