Prosty skrypt na sprawdzanie poprawności adresu IP.
#!/bin/bash # Test an IP address for validity: # Usage: # valid_ip IP_ADDRESS # if [[ $? -eq 0 ]]; then echo good; else echo bad; fi # OR # if valid_ip IP_ADDRESS; then echo good; else echo bad; fi # function valid_ip() { local ip=$1 local stat=1 if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then OIFS=$IFS IFS='.' ip=($ip) IFS=$OIFS [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] stat=$? fi return $stat } ips=' 127.0.0.1 192.168.1.256 254.12.211.11 4.4.4.4 ' for ip in $ips do if valid_ip $ip; then stat='good'; else stat='bad'; fi printf "%-20s: %s\n" "$ip" "$stat" done
Przykładowy output
[email protected]:~$ ./validIP.sh 127.0.0.1 : good 192.168.1.256 : bad 254.12.211.11 : good 4.4.4.4 : good
dlaczego nie całość w regex 😛 ?
Co masz na myśli 😛