Bash에서 넷마스크를 얻는 방법은 무엇입니까?

Bash에서 넷마스크를 얻는 방법은 무엇입니까?

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팩. 간략하게 설명하자면, 이 근본적인 변화에 대한 자세한 내용을 보려면 다음 관련 링크를 참조하세요.

사례 예: 데비안 리눅스

사례예: 아치리눅스

net-tools ifconfig에 대한 매뉴얼 페이지(BUGS 섹션 참조)

사용자 관점에서 프레임워크를 분석하고 비교합니다.

답변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

관련 정보