En Ubuntu necesito detectar si la dirección IP de la red es un sistema NAT (no es necesario STUN)
Pensé en verificar el tipo de rango de clase de IP de esta manera:Compruebe si la dirección IP está en un espacio de red privado
Pero vi otra forma: usar NETLINK_ROUTE para obtener el sistema IP local de la tabla de rutas de la pila de red del kernel.
Compare esa ip con la ip externa enrutable, si son iguales, la red no es un sistema nat
En Perl encontré un módulo IO::Socket::Netlink::Route, lo probé y funcionó
https://metacpan.org/pod/release/PEVANS/Socket-Netlink-Route-0.05/lib/IO/Socket/Netlink/Route.pm
Pero leyendo sobre la ruta /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
Acerca de Rtnetlink
Rtnetlink allows the kernel's routing tables to be read
https://man7.org/linux/man-pages/man7/rtnetlink.7.html
Ya estoy usando la ruta /sbin/ip para obtener la IP principal de la red activa, por lo que quiero evitar instalar otro módulo y solo usé la ruta IP para realizar la detección del sistema NAT.
¿Es correcto mi enfoque?