Her ağ arayüzünün bir ismi vardır. Bu isim genellikle arayüz türüyle ilişkili birkaç harften oluşur, buna ek olarak eğer aynı türde birden fazla arayüz varsa sonuna bir numara eklenir. Örneğin lo (geridönüş arayüzü - loopback interface) ve eth0 (birinci Ethernet arabirimi).
Her ne kadar bunun gibi isimler insanlar için uygun olsa da bir yazılımın arayüz bilgisine her ihtiyaç olduğunda bu kullanım hantal kalabilir. Bu gibi durumlarda arayüze küçük pozitif tamsayı bir değer olan indis ile erişilir.
Sözü edilen işlevler, sabitler ve veri türleri net/if.h başlık dosyasında bildirilmiştir.
Bu sabit, arayüz ismini ve sonlandırıcı boş karakteri tutmak için gerekli azami tampon boyutunu belirtir.
unsigned int if_nametoindex | (const char *arayüz_ismi) |
işlev
Bu işlev belirli bir isme karşılık gelen arayüz indisini verir. Belirtilen isimde bir arayüz yoksa 0 döndürür.
char *if_indextoname | (unsigned int arayüz_indisi,
char *arayüz_ismi) |
işlev
Bu işlev bir arayüz indisini karşılık gelen arayüz ismine eşler. Döndürülen isim arayüz_ismi ile gösterilen tampona yerleştirilir (arayüz_ismi en az IFNAMSIZ bayt uzunluğunda olmalıdır). İndis geçersizse işlevin dönüş değeri bir boş göstericidir, aksi takdirde arayüz_ismi 'dir.
Bu veri türü bir arayüz ile ilgili bilgiyi tutmak için kullanılır. Aşağıdaki üyelere sahiptir:
-
unsigned int if_index
Arayüz indisidir.
-
char *if_name
Boş karakter sonlandırmalı arayüz ismidir.
struct if_nameindex *if_nameindex | (void) |
işlev
Bu işlev her biri mevcut arayüzlerin if_nameindex yapılarından oluşan bir dizi döndürür. Listenin sonu 0 arayüzü ve bir boş isim göstericisi içeren bir yapı ile belirtilmiştir.
Döndürülen yapı kullanımdan sonra if_freenameindex ile serbest bırakılmalıdır.
void if_freenameindex | (struct if_nameindex *gstr) |
işlev
Bu işlev evvelce yapılmış bir if_nameindex çağrısından dönen yapıyı serbest bırakır.