fork download
  1. #!/bin/bash
  2.  
  3. ip=199.166.20.111
  4. echo $ip | perl -e '$_=<>; exit 1 unless \
  5. m/^(?!\.)(?:\.?(?:2[0-4]\d|25[0-5]|1?\d?\d)\b){4}$/ && \
  6. !m/^(?:127\.0\.0\.1|10\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[0-1]\.|192\.168\.)/'
  7.  
  8. if [[ $? == 1 ]]; then
  9. echo $ip no es una IP o es privada
  10. else
  11. echo $ip es una IP pública
  12. fi
  13.  
  14. ip=172.17.19.254
  15. echo $ip | perl -e '$_=<>; exit 1 unless \
  16. m/^(?!\.)(?:\.?(?:2[0-4]\d|25[0-5]|1?\d?\d)\b){4}$/ && \
  17. !m/^(?:127\.0\.0\.1|10\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[0-1]\.|192\.168\.)/'
  18.  
  19. if [[ $? == 1 ]]; then
  20. echo $ip no es una IP o es privada
  21. else
  22. echo $ip es una IP pública
  23. fi
  24.  
Success #stdin #stdout 0s 19632KB
stdin
Standard input is empty
stdout
199.166.20.111 es una IP pública
172.17.19.254 es una IP pública