본문 바로가기

리눅스

현재 통신 가능한 현재 통신 가능한 인터페이스의 이름들이 출력이름을 출력하는 명령어

728x90

현재 통신 가능한 인터페이스 이름을 출력하는 명령어

ifconfig 명령어

명령어는 현재 활성화된(enabling) 상태이며 IP 주소를 가지고 있는 인터페이스만을 필터링하여 출력합니다.

ifconfig | awk '/^[a-z]/{gsub(/:/, "", $1); dev=$1; next} /inet[^6]/ && $2 !~ /127.0.0.1/ && dev != "docker0" {print dev}'

HP ProLiant DL360 G7

$ ifconfig | awk '/^[a-z]/{gsub(/:/, "", $1); dev=$1; next} /inet[^6]/ && $2 !~ /127.0.0.1/ && dev != "docker0" {print dev}'
enp3s0f0

HP ProLiant DL380 Gen9

$ ifconfig | awk '/^[a-z]/{gsub(/:/, "", $1); dev=$1; next} /inet[^6]/ && $2 !~ /127.0.0.1/ && dev != "docker0" {print dev}'
eno1

HPE ProLiant DL360 Gen10

$ ifconfig | awk '/^[a-z]/{gsub(/:/, "", $1); dev=$1; next} /inet[^6]/ && $2 !~ /127.0.0.1/ && dev != "docker0" {print dev}'
ens1f0

명령어 설명

 /^[a-z]/{gsub(/:/, "", $1); dev=$1; next}
  • 패턴 /^[a-z]/은 첫 번째 열이 소문자로 시작하는 줄을 찾습니다. 이는 네트워크 인터페이스의 정보를 나타냅니다.
  • gsub(/:/, "", $1)는 인터페이스 이름에서 ":"를 제거합니다.
  • dev=$1은 현재의 인터페이스 이름을 dev 변수에 저장합니다.
  • next는 다음 루프로 이동합니다.
/inet[^6]/ && $2 !~ /127.0.0.1/ && dev != "docker0" {print dev}
  • 패턴 /inet[^6]/는 두 번째 열에 "inet"이 포함된 줄을 찾습니다. 이는 IP 주소 정보를 나타냅니다. (IPv6를 제외)
  • $2 !~ /127.0.0.1/는 두 번째 열이 "127.0.0.1"이 아닌 줄을 찾습니다. 이는 로컬 루프백 주소를 제외합니다.
  • dev != "docker0"는 "docker0" 인터페이스를 제외합니다.
  • 최종적으로 조건을 만족하는 경우, 현재의 인터페이스 이름인 dev를 출력합니다.

 

728x90