변수가 5개 있어요
전임자:
a, b, c, d, x,
1-255(x의 경우 1-32) 사이가 아닌 경우 오류 메시지를 표시하거나 임의의 텍스트나 문자를 입력하고 오류 메시지도 표시합니다. 어떻게 해야 합니까?
경험:
echo "CIDR:"
read ip
x="$(echo $ip |cut -d "/" -f2)"
a="$(echo $ip |cut -d "." -f1)"
b="$(echo $ip |cut -d "." -f2)"
c="$(echo $ip |cut -d "." -f3)"
d="$(echo $ip |cut -d "." -f4 | cut -d "/" -f1)"
ppl이 3과 같은 잘못된 IP 형식을 입력하면 다음과 1337.-135.abcxyz.!@#@#/12
같은 오류 메시지가 인쇄됩니다. Error: wrong IP format
...etc.
답변1
ipcalc를 사용하여 IP 주소를 확인할 수 있습니다
남성의 경우:
ipcalc - perform simple manipulation of IP addresses
예
ipcalc -cs 192.168.1.1/30 && echo OK || echo NOT_OK
또는
ipcalc -cs "$a.$b.$c.$d/$x" && echo OK || echo NOT_OK
또는
ipcalc -cs "$ip" && echo OK || echo NOT_OK
답변2
아래와 같이 IP 확인에 정규식을 사용할 수 있습니다.
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b