#nat #stun #detect

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

#187 in Testing

Download history 6866/week @ 2022-11-28 7265/week @ 2022-12-05 6857/week @ 2022-12-12 6347/week @ 2022-12-19 5791/week @ 2022-12-26 6790/week @ 2023-01-02 6623/week @ 2023-01-09 6308/week @ 2023-01-16 6325/week @ 2023-01-23 5506/week @ 2023-01-30 5695/week @ 2023-02-06 4604/week @ 2023-02-13 4126/week @ 2023-02-20 4297/week @ 2023-02-27 4415/week @ 2023-03-06 5087/week @ 2023-03-13

18,309 downloads per month

MIT license

25KB
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

~5–10MB
~173K SLoC