명령 출력 편집을 위한 쉘 스크립트(Bash)

명령 출력 편집을 위한 쉘 스크립트(Bash)

명령 출력 편집을 위한 쉘 스크립트(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); }'

관련 정보