ip route
é provavelmente a maneira mais fácil de obter essas informações e está correta na maioria das situações.
root@myhost:~# ip route
default via 192.168.2.1 dev eth1
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.30
Aqui está um comando shell que não é muito elegante e poderia usar mais, que extrairá o 192.168.2.0/24
do acima. Ele irá extrair o acima e colocá-lo na variável shell $MY_SUBNET_WITH_CIDR
DEFAULT_ROUTE_IFACE='ip route | grep default | cut -f 5 -d " "'; \
MY_SUBNET_WITH_CIDR='ip route | tail -n -1 | grep $DEFAULT_ROUTE_IFACE | cut -f 1 -d " "'
É claro que, se o seu gateway padrão for fornecido pelo seu modem a cabo ou provedor de banda larga, você estará tentando nmap
de uma rede pertencente a eles, o que pode parecer hostil, portanto, tenha cuidado.