Linux에서 넷마스크를 얻고 싶습니다. 다음과 같이 출력되지만 ifconfig
문자열을 추출하고 싶습니다.
답변1
여기에 있는 코드는 Linux용이라는 점을 분명히 해야 합니다(다른 Unices에 대한 의견 및 게시물 참고). OP는 Linux 솔루션을 요청했지만 질문을 "넷마스크를 얻는 방법"으로 변경하고 더 많은 Unix 스타일 모범 사례를 포함하는 답변을 얻는 것이 더 나을 것입니다.
#!/bin/sh
ifconfig "$1" | sed -rn '2s/ .*:(.*)$/\1/p'
./script eth0
Linux의 ifconfig 정보
netstat, arp, rarp 및 Route와 같은 다른 기존 네트워크 명령과 함께 ifconfig는네트워크 도구팩. Net-tools는 오랫동안 적극적으로 개발되지 않았으며 새로운 도구를 선호하여 더 이상 사용하지 않으려는 노력이 있습니다.IP 경로 2팩. 간략하게 설명하자면, 이 근본적인 변화에 대한 자세한 내용을 보려면 다음 관련 링크를 참조하세요.
답변2
/sbin/ifconfig eth0 | awk '/Mask:/{ print $4;} '
?
답변3
정말 마스크만 원하는지 궁금합니다. 어쩌면 당신은 구성 파일 nmap
이나 다른 것에 사용되는 마스크가 있는 네트워크(또는 IP)를 정말로 원할 수도 있습니다 .
이 경우 Linux에서는 명령의 출력을 구문 분석할 수도 있습니다 ip ...
.
CIDR 표기법으로 모든 인터페이스와 해당 주소 및 마스크를 나열하려면 다음 안내를 따르세요.
ip -o -f inet addr show | awk '/scope global/ {print $2, $4}'
또는 기본 인터페이스로 제한합니다.
default_if=$(ip route list | awk '/^default/ {print $5}')
ip -o -f inet addr show $default_if | awk '{print $4}'
그러면 내 컴퓨터에 "192.168.1.61/24"가 표시됩니다.
답변4
/sbin/ifconfig eth0 | grep Mask | cut -d":" -f4