![iwconfig와 같은 명령을 실행하는 대신 fs의 파일에서 현재 활성 Wi-Fi 카드 인터페이스를 가져오는 방법이 있습니까?](https://linux55.com/image/198483/iwconfig%EC%99%80%20%EA%B0%99%EC%9D%80%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%8C%80%EC%8B%A0%20fs%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%98%84%EC%9E%AC%20%ED%99%9C%EC%84%B1%20Wi-Fi%20%EC%B9%B4%EB%93%9C%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%98%A4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
다양한 도구를 실행하여 현재 활성화된 네트워크 카드 인터페이스를 얻는 방법에는 여러 가지가 있다는 것을 알고 있습니다. 그 중 하나는 다음과 같습니다.iwconfig
나는 동일한 결과를 얻을 수 있는 방법을 찾고 있습니다. 단, 가능하다면 Linux의 파일 시스템에 액세스해야만 합니다. 다른 데이터를 얻기 위해 이미 다른 프로세스가 실행 중인 .NET 응용 프로그램이 있습니다. 이러한 외부 프로세스를 최대한 줄여야 합니다.
답변1
답변에서 제안하는 내용을 자동화하는 스크립트가 필요한 경우를 대비하여 GAD3R의 답변에 추가합니다(이 목적을 위해 작성한 스니펫).
#!/bin/bash
function getFirstActiveNIC()
{
interfaces="/sys/class/net/*"
for interface in ${interfaces};
do
if [ $(cat "${interface}/operstate") = "up" ];
then
echo "$(basename ${interface})"
fi
done
}
답변2
이 정보는 다음에서 얻을 수 있습니다.
cat /sys/class/net/$IFACE/operstate
결과는 up
또는down
모든 인터페이스 이름을 나열합니다.
ls /sys/class/net
무선 네트워크 카드인지 확인하십시오.
[[ -d "/sys/class/net/$IFACE/wireless" ]] && echo "WiFi card"