No Ubuntu preciso detectar se o endereço IP da rede é um sistema NAT (não precisa de STUN)
Pensei em verificar o tipo de intervalo da classe IP assim:Verifique se o endereço IP está no espaço da rede privada
Mas eu vi outra maneira, usando NETLINK_ROUTE obter o sistema ip local da tabela de rotas da pilha de rede do kernel
Compare esse ip com o ip externo roteável, se forem iguais, a rede não é um sistema nat
Em Perl encontrei um módulo IO::Socket::Netlink::Route, testei e funcionou
https://metacpan.org/pod/release/PEVANS/Socket-Netlink-Route-0.05/lib/IO/Socket/Netlink/Route.pm
Mas lendo sobre a rota /sbin/ip:
All operations with the ip route command are atomic, so each command will return either RTNETLINK answers
http://linux-ip.net/html/tools-ip-route.html
Sobre Rtnetlink
Rtnetlink allows the kernel's routing tables to be read
https://man7.org/linux/man-pages/man7/rtnetlink.7.html
Já estou usando /sbin/ip route para obter o ip principal da rede ativa, então quero evitar instalar outro módulo, e apenas usei ip route para fazer a detecção do sistema NAT.
Minha abordagem está correta?