리눅스

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

변군Dev 2024. 1. 23. 12:23
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