Ağ İsimleri Veritabanı
Önceki XVI. Oylum - Soketler Sonraki
Ağ İsimleri Veritabanı
Birçok sistem bilinen ağ isimlerinin listesini kaydederek sistem geliştiricisine sunan bir veritabanı ile beraber gelir. Bu bilgi genellikle /etc/networks dosyası içerisinde veya eşdeğer bir isim sunucusunda tutulur. Bu veritabanı route gibi yönlendirme yazılımları için kullanışlıdır ancak ağ üzerinde basitçe haberleşen yazılımlar için değildir. Bu veritabanına erişmek için gerekli işlevler netdb.h içinde bildirilmiştir.
struct netent
veri türü
Bu veri türü ağ veritabanındaki girdi bilgilerininin gösterimi için kullanılır. Aşağıdaki üyelere sahiptir:
char *n_name
"Resmi" ağ ismidir.
char **n_aliases
Bunlar bir dizgeler dizisi olarak alternatif ağ isimleridir. Diziyi bir boş gösterici sonlandırır.
int n_addrtype
Bu ağ numarasının türüdür; Internet ağları için herzaman AF_INET'e eşittir.
unsigned long int n_net
Bu ağ numarasıdır. Ağ numaraları konak bayt sırası ile döndürülür.
Ağ veritabanında belirli bir ağ hakkında arama yapıp bilgi edinmek için getnetbyname veya getnetbyaddr işlevi kullanılır. Bilgi durağan olarak ayrılmış bir yapıda geri döner; saklamak gerekiyorsa bilginin kopyalanması gerekir.
struct netent *getnetbyname
(const char *isim)
işlev
getnetbyname işlevi isim ile isimlendirilmiş ağ hakkında bilgi döndürür. Öyle bir ağ yoksa boş gösterici döndürür.
struct netent *getnetbyaddr
(unsigned long int ,
 int               tür)
işlev
getnetbyaddr işlevi tür türünde ve numarasındaki ağ hakkında bilgi döndürür. Internet ağları için tür argümanına bir AF_INET değeri belirtmelisiniz.
getnetbyaddr öyle bir ağ yoksa boş gösterici döndürür.
Ayrıca setnetent, getnetent ve endnetent kullanarak ağ veritabanını tarayabilirsiniz. Bu işlevleri kullanırken dikkatli olun çünkü bunlar evresel (reentrant) işlevler değildir.
void setnetent
(int açıkkal)
işlev
Bu işlev ağ veritabanını açar ve sayacı başa getirir.
açıkkal argümanı sıfır ise bu bir bayrağa değer verir böylece sonraki getnetbyname veya getnetbyaddr işlev çağrıları veritabanını kapatmaz (normalde olması gerektiği gibi). Eğer bu işlevleri çok kez çağırıyorsanız, her çağrıda veritabanını tekrar açmakdan kurtulur ve daha verimli bir sonuç elde edersiniz.
struct netent *getnetent
(void)
işlev
Bu işlev ağ veritabanındaki sonraki girdiyi döndürür. Eğer sonraki girdi yoksa boş gösterici döndürür.
void endnetent
(void)
işlev
Bu işlev ağ veritabanını kapatır.
Önceki Üst Ana Başlık Sonraki
Soket Seviye Seçenekleri Başlangıç XVII. Oylum - Düşük Seviyeli Uçbirim Arayüzü
Bir Linux Kitaplığı Sayfası