내 대답에 대한 한 가지주의 사항 (대부분의 다른 사람들에게도 적용됨) : 귀하의 신청서의 목적을 모르겠습니다. 하나의 특정 문제를 해결하거나 네트워킹을 더 잘 이해하기위한 끔찍한 응용 프로그램 인 경우 다시는 사용하지 마십시오. 인터페이스의 첫 글자를 사용하는 것이 매우 빠르고 까다로운 옵션 일 수 있습니다. 다음 경쟁 업체를 Wireshark 또는 tcpdump에 작성하려는 경우 모든 종류의 엣지 케이스에 적합한 경쟁 업체인지 확인해야합니다.
그리고 작성중인 응용 프로그램이 이러한 극단 사이에있는 경우 자신과 고객 만 논리를 구현하는 데 얼마나 신중해야하는지 알 수 있습니다.
다른 사람들은 이미 여러 가지 이유로 이름이 신뢰할 수 없다고 지적했습니다. 궁극적 인 문제는 소프트웨어에서 매우 일반적인 문제입니다. 알려진 / 문서화 된 사실에 의존하는 대신 하드 코딩 가정.
언급되지 않은 두 번째 문제는 요구 사항에 대한 가정을 기반으로합니다. 나열하려는 인터페이스 목록은 항상 "하드웨어 이더넷 인터페이스"및 "wifi 인터페이스"라는 것입니다.
세 번째 문제는 또 다른 가정입니다. 모든 인터페이스는 현재 생각할 수있는 범주에 속합니다. @ user4556274에서 언급했듯이 Infiniband는 어떻습니까? VPN의 터널 인터페이스는 어떻습니까? 브리지 된 인터페이스는 어떻습니까? 물리적 인터페이스와 논리적 인터페이스를 결합한 브리지 된 인터페이스는 어떻습니까?
그러나 원하는 것을 달성하기위한 옵션이있을 수 있습니다. 먼저, 나열하려는 인터페이스의 특성과 그렇지 않은 인터페이스를 정확하게 정의하십시오.
대부분의 경우 신뢰할 수있는 특성 중 하나는 라우팅 테이블입니다. 그러나 인터페이스가 작동하는 동안에 만 작동하므로 실제로는 원하는 것이 아닐 수 있습니다.
기본 경로가있는 인터페이스 (즉, 0.0.0.0에 대한 경로)는 원하는 인터페이스 일 수 있습니다.
이것은 여전히 가정에 기반하고 있으며보다 안정적인 가정에 기반합니다. 시스템이 모든 아웃 바운드 트래픽을 가상 머신 또는 도커 컨테이너 (예 : 방화벽을 실행하는 컨테이너가있는 경우)를 통해 라우팅하도록 구성 될 수 있습니다. ). 그 반대도 마찬가지입니다. sysadmin은 기본 경로를 삭제하여 외부 트래픽을 잠글 수 있습니다.
다른 옵션은 실제 하드웨어를 사용하여 어떤 드라이버를 사용하는지 확인하는 것입니다. 그런 다음 잘 알려진 특정 드라이버를 제외 할 수 있습니다