명령 출력 편집을 위한 쉘 스크립트(Bash)
내 개인 무선 네트워크에서 IP 주소 범위를 결정하기 위한 쉘 스크립트를 작성하려고 합니다. 이 명령을 실행할 때:
ifconfig
나는 다음과 같은 핵심 메시지를 받았습니다.
inet 192.168.1.228
broadcast 192.168.1.255
netmask 255.255.255.0
이제 범위가 192.168.1.0-255(또는 192.168.1.0/24)라는 것을 알 수 있습니다. 내가 만든 이 스크립트를 실행하려고 합니다.
#!/bin/bash
ifconfig | awk '/broadcast/ {print $6}'
그러면 최대 IP 범위가 출력됩니다.
192.168.1.255
이 스크립트가 다음과 같이 최대 범위를 찾도록 하려면 어떻게 해야 합니까? 그러나 다음과 같이 작성됩니다.
192.168.1.0-255
또는
192.168.1.0/24
어떤 도움이라도 대단히 감사하겠습니다!
답변1
가장 간단한 해결책은 ip address
어쨌든 ifconfig
해야 할 일을 사용하는 것입니다.
ifconfig
출력에서 넷마스크를 얻고 1비트 수를 계산할 수 있습니다 .
echo 255.255.255.0 |
awk -F. '{print "obase=2;" $1 "*2^24+" $2 "*2^16+" $3 "*2^8+" $4}' |
bc |
awk '{ sub("10*$","1", $0); print length($0); }'