#nat #detect #stun

bin+lib nat-detect

a simple nat detect implementation for rust

1 unstable release

0.1.7 Feb 19, 2022
0.1.6 Feb 19, 2022

#20 in #stun

Download history 3135/week @ 2023-12-11 2449/week @ 2023-12-18 799/week @ 2023-12-25 1947/week @ 2024-01-01 2108/week @ 2024-01-08 242/week @ 2024-01-15 369/week @ 2024-01-22 149/week @ 2024-01-29 68/week @ 2024-02-05 1175/week @ 2024-02-12 666/week @ 2024-02-19 84/week @ 2024-02-26 195/week @ 2024-03-04 73/week @ 2024-03-11 75/week @ 2024-03-18 148/week @ 2024-03-25

506 downloads per month

MIT license

26KB
290 lines

nat-detect

a simple nat detect implementation for rust

                                    +--------+
                                    |  Test  |
                                    |   I    |
                                    +--------+
                                         |
                                         |
                                         V
                                        /\              /\
                                     N /  \ Y          /  \ Y             +--------+
                      UDP     <-------/Resp\--------->/ IP \------------->|  Test  |
                      Blocked         \ ?  /          \Same/              |   II   |
                                       \  /            \? /               +--------+
                                        \/              \/                    |
                                                         | N                  |
                                                         |                    V
                                                         V                    /\
                                                     +--------+  Sym.      N /  \
                                                     |  Test  |  UDP    <---/Resp\
                                                     |   II   |  Firewall   \ ?  /
                                                     +--------+              \  /
                                                         |                    \/
                                                         V                     |Y
                              /\                         /\                    |
               Symmetric  N  /  \       +--------+   N  /  \                   V
                  NAT  <--- / IP \<-----|  Test  |<--- /Resp\               Open
                            \Same/      |   I    |     \ ?  /               Internet
                             \? /       +--------+      \  /
                              \/                         \/
                              |                           |Y
                              |                           |
                              |                           V
                              |                           Full
                              |                           Cone
                              V              /\
                          +--------+        /  \ Y
                          |  Test  |------>/Resp\---->Restricted
                          |   III  |       \ ?  /
                          +--------+        \  /
                                             \/
                                              |N
                                              |       Port
                                              +------>Restricted

Install

cargo install nat-detect

Usage

# use default stun server list
# may be, these default servers will not good work in your net!
nat-detect

# use stun server 193.43.148.37:3478 
nat-detect -s 193.43.148.37:3478

default stun server list use always-online-stun

Dependencies

~6–14MB
~135K SLoC