X를 알 수 없는 경우 wlanX를 통해 핑

X를 알 수 없는 경우 wlanX를 통해 핑

나는 호스트 테이블을 업데이트하고 특정 호스트에 대한 연결을 테스트하는 bash 스크립트를 실행하고 있습니다. 많은 컴퓨터에서 성공적으로 실행됩니다. 이 프로세스 동안 다음 명령을 사용하여 지정된 호스트와의 통신을 확인합니다.

ping -I wlan0 <host>

그리고

ping -I eth0 <host>

이것은 (유일한) 무선 장치가 udev 장난의 피해자가 된 컴퓨터에서 사용해 보기 전까지는 잘 작동했습니다(이와 유사) 때로는 wlan0이 사용되고 때로는 wlan1이 사용됩니다.

특정 날짜에 시스템이 선호하는 장치를 식별하는 코드를 작성하지 않고도 wlanX 장치를 ping하기 위해 bash 스크립트를 작성할 수 있는 안정적인 방법이 있습니까?

답변1

이 명령을 사용하여 사용된 인터페이스를 식별할 수 있습니다(루트로 실행).

iwconfig 2>/dev/null | grep -o "^\w*"

예를 들어 출력은 다음과 같습니다.

wlan0

스크립트의 변수에 답을 저장해야 합니다.

답변2

이 두 명령 중 하나는 루프백이 아닌 시스템 인터페이스를 나열하므로 이를 반복할 수 있습니다.

ip link | awk '$1+0>1 {print substr($2,1,length($2)-1)}'
netstat -i | awk 'NR>2 && $1 != "lo" {print $1}'

awk또는 다음 으로 시작하는 줄만 인쇄하도록 조건을 조정할 수 있습니다 wlan.

ip link | awk '$1+0 && $2 ~ /^wlan/ {print substr($2,1,length($2)-1)}'
netstat -i | awk 'NR>2 && $1 ~ /^wlan/ {print $1}'

관련 정보