Satu peringatan dengan jawaban saya (berlaku untuk sebagian besar yang lain juga): Saya tidak tahu tujuan aplikasi Anda. Jika itu adalah aplikasi sekali pakai untuk memecahkan satu masalah tertentu, atau untuk memahami jaringan yang lebih baik, tidak pernah digunakan lagi, maka mengandalkan huruf pertama dari antarmuka mungkin merupakan opsi cepat dan kotor yang bagus. Jika Anda berencana untuk menulis pesaing berikutnya ke Wireshark atau tcpdump, Anda harus yakin Anda melakukannya dengan benar untuk semua jenis casing tepi.
Dan jika aplikasi yang Anda tulis berada di antara yang ekstrem, hanya Anda (dan pelanggan Anda) yang dapat mengetahui seberapa cermat Anda perlu menerapkan logika Anda.
Yang lain telah menunjukkan bahwa nama-nama itu tidak pernah dapat diandalkan, karena sejumlah alasan. Masalah pamungkas adalah masalah yang sangat umum dalam perangkat lunak: asumsi pengkodean keras alih-alih mengandalkan fakta yang diketahui / didokumentasikan.
Masalah kedua yang belum disebutkan juga didasarkan pada asumsi tentang persyaratan Anda: bahwa daftar antarmuka yang ingin Anda daftarkan selalu persis "antarmuka perangkat keras ethernet" dan "antarmuka wifi".
Masalah ketiga adalah asumsi lain: bahwa semua antarmuka akan jatuh ke dalam kategori yang dapat Anda pikirkan saat ini. Bagaimana dengan Infiniband, seperti yang disebutkan oleh @ user4556274? Bagaimana dengan antarmuka terowongan untuk VPN? Bagaimana dengan antarmuka yang dijembatani? Bagaimana dengan antarmuka dijembatani yang menggabungkan antarmuka fisik dan logis?
Tetapi mungkin ada opsi untuk mencapai apa yang Anda cari. Pertama, tentukan dengan tepat apa yang mencirikan antarmuka yang ingin Anda daftarkan, vs yang tidak.
Dalam kebanyakan kasus, satu karakteristik yang dapat Anda andalkan adalah tabel routing (namun, ini hanya akan berfungsi selama antarmuka sudah aktif, sehingga mungkin bukan yang sebenarnya Anda cari).
Setiap antarmuka yang memiliki rute default (yaitu, rute ke 0.0.0.0) cenderung menjadi yang Anda cari.
Perhatikan bahwa meskipun ini masih didasarkan pada asumsi, hanya asumsi yang lebih andal: dapat dibayangkan bahwa sistem dikonfigurasikan untuk merutekan semua lalu lintas keluar melalui mesin virtual atau wadah buruh pelabuhan (misalnya, jika ada wadah yang menjalankan firewall) ). Dan sebaliknya juga benar: sysadmin berpotensi mengunci lalu lintas di luar dengan menghapus rute default.
Pilihan lain adalah menggunakan perangkat keras yang sebenarnya dan melihat driver yang digunakannya. Anda kemudian dapat mengecualikan driver tertentu yang terkenal