test="1.1.1.1 3.3.3.3 999.99.999.99"
Bu şekilde olan test komutunu if else ile süzgeçten geçirmek istiyorum
Multi bir şekilde geçmeli, yani tek ip adresini baz almayacak yukarıdaki gibi toplu ölçeçek
if [ "$test" = REGEX ] ; then
....
fi
Şeklinde eğer test içerisinde 1.1.1.1 -255.255.255.255 arasında bir adres yoksa veya 999.999.999 gibi yanlış adresleri ayırmam için regex gerekli:
şimdiden teşekkürler
IP Validation regex yardım
4
●90
- 29-11-2022, 13:28:11Denemiştim hocam öncedenbahax41 adlı üyeden alıntı: mesajı görüntüle
1 adres için çalışıyor, multi de çalışmıyor. text içerisinden tek tek çektirilebilinir ama bana bu şekilde lazım yukarıdaki gibi - 29-11-2022, 13:28:16
#!/bin/bash IPLIST="127.0.0.1;255.255.255.256" ipvalid() { # Set up local variables local ip=${1:-NO_IP_PROVIDED} local IFS=.; local -a a=($ip) # Start with a regex format test [[ $ip =~ ^[0-9]+(\.[0-9]+){3}$ ]] || return 1 # Test values of quads local quad for quad in {0..3}; do [[ "${a[$quad]}" -gt 255 ]] && return 1 done return 0 } for i in $(echo $IPLIST | tr ";" "\n") do if ipvalid "$i"; then echo "success ($i)" else echo "fail ($i)" fi doneŞu şekilde birşeyle çözersiniz - 29-11-2022, 13:30:44Bu Biraz uzun hocam daha kısa basit birşey işimi çözecek, çözemezsem bu kod ile işleme alacağım teşekkürlerCihanAksoy adlı üyeden alıntı: mesajı görüntüle
IP_ADDRESS="12.12.12.255 2.2.2.2" test='(\b25[0-5]|\b2[0-4][0-9]|\b[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}' if [[ "$IP_ADDRESS" =~ ^$test$ ]] ; then echo 1 else echo 2 fi