.TH "ipcalc.c" 3 "30 Apr 2001" "initscripts" \" -*- nroff -*- .ad l .nh .SH НАЗВА ipcalc.c \- забезпечує набір утиліт для оперування IP-адресами. .SH ВИКОРИСТАННЯ .br .PP \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br \fC#include \fR .br .SS Визначає .in +1c .ti -1c .RI "#define \fBIPBITS\fR (sizeof(unsigned long int) * 8)" .br .RI "\fIкількість біт в IP-адресі.\fR" .ti -1c .RI "#define \fBIPBYTES\fR (sizeof(unsigned long int))" .br .RI "\fIкількість байт в IP-адресі.\fR" .in -1c .SS Functions .in +1c .ti -1c .RI "unsigned long int \fBprefix2mask\fR (int prefix)" .br .RI "\fIстворює маску мережі з вказаної кількості біт.\fR" .ti -1c .RI "int \fBmask2prefix\fR (unsigned long int mask)" .br .RI "\fIобчислює номер біт маскованих шаблоном мережевої маски.\fR" .ti -1c .RI "unsigned long int \fBdefault_netmask\fR (unsigned long int addr)" .br .RI "\fIповертає стандартну (канонічну) маску мережі зв'язано з вказаною IP-адресою.\fR" .ti -1c .RI "unsigned long int \fBcalc_broadcast\fR (unsigned long int addr, int prefix)" .br .RI "\fIобчислює адресу трансляції (broadcast address) з IP-адреси і довжини префікса.\fR" .ti -1c .RI "unsigned long int \fBcalc_network\fR (unsigned long int addr, int prefix)" .br .RI "\fIобчислює мережеву адресу для вказаної адреси і префікса.\fR" .ti -1c .RI "const char* \fBget_hostname\fR (unsigned long int addr)" .br .RI "\fIповертає назву хоста відповідного вказаній IP-адресі.\fR" .ti -1c .RI "int \fBmain\fR (int argc, const char **argv)" .br .RI "\fIпрограма-обгортка для функцій ipcalc.\fR" .in -1c .SH ДОКЛАДНИЙ ОПИС .PP забезпечує набір утиліт для оперування IP-адресами. .PP .PP ipcalc забезпечує утиліти і командний інтерфейс для оперування IP-адресами і обчислення різноманітних параметрів IP - адрес/масок/мережевих адрес/префіксів, тощо. .PP Ці ж функції можна викликати з інших мов через інтерфейс бібліотеки. Щоб користуватись ipcalc з командної оболонки, зверніться до сторінок посібника ipcalc(1). .PP Коли передаєте параметри до різноманітних функцій, будь ласка, звертайте увагу, чи вони приймають адресу з порядком байтів на машині чи з порядком байтів у мережі. Більшість команд приймають порядок байтів на машині і повертають також, але бувають деякі виключення. .PP .SH ДОКУМЕНТАЦІЯ ДО ФУНКЦІЙ .PP .SS unsigned long int calc_broadcast (unsigned long int addr, int prefix) .PP обчислює адресу трансляції з заданої IP-адреси і довжини префікса. .PP .PP .PP \fBПараметри: \fR .in +1c .TP \fB\fIaddr\fR\fR IP-адреса з порядком байтів в мережі. .TP \fB\fIprefix\fR\fR довжина префікса. .PP \fBПовертає: \fR .in +1c обчислену адресу трансляції для мережі, з мережевим порядком байтів. .SS unsigned long int calc_network (unsigned long int addr, int prefix) .PP обчислює адресу мережі для вказаної адресу і префікса. .PP .PP .PP \fBПараметри: \fR .in +1c .TP \fB\fIaddr\fR\fR IP-адреса з порядком байтів в мережі .TP \fB\fIprefix\fR\fR префікс мережі .PP \fBПовертає: \fR .in +1c базову адресу мережі (з якою співвідноситься addr) з порядком байтів в мережі. .SS unsigned long int default_netmask (unsigned long int addr) .PP повертає стандартну (канонічну) маску мережі зв'язану з вказаною IP-адресою. .PP .PP Під час заснування інтернету різноманітні діапазони IP-адрес були поділені на три класи: A, B і С. Ця функція повертає маску мережі, яка асоціюється з вказаною IP-адресою, визначаючи, де вона попадає в наперед встановлені класи. .PP \fBПараметри: \fR .in +1c .TP \fB\fIaddr\fR\fR IP-адреса з порядком байтів в мережі. .PP \fBПовертає: \fR .in +1c мережеву маску з порядком байтів в мережі. .SS const char * get_hostname (unsigned long int addr) .PP повертає назву хоста відповідну вказаній IP-адресі. .PP .PP .PP \fBПараметри: \fR .in +1c .TP \fB\fIaddr\fR\fR IP-адреса, для якої шукається назва хоста з порядком байтів в мережі .PP \fBПовертає: \fR .in +1c назву хоста чи значення NULL, якщо назва не вдається визначити. Назва хоста зберігається в статичному буфері, який може зникнути в будь-який момент, якщо користувачеві потрібно зберегти це значення, його потрібно скопіювати в місце постійного зберігання. .SS main (int argc, const char ** argv) .PP головна програма-обгортка для функцій ipcalc. .PP .PP Це програма-обгортка для функцій наданих бібліотекою ipcalc. Вона може використовуватись в скриптах командної оболонки чи пряму у командному рядку. .PP Додаткову інформацію можна отримати з сторінки посібника ipcalc(1). .SS int mask2prefix (unsigned long int mask) .PP обчислює кількість біт відфільтрованих мережевою маскою. .PP .PP Ця функція обчислює значимі біти в IP-адресі в залежності від мережевої маски. Див. також \fBprefix2mask\fR. .PP \fBПараметри: \fR .in +1c .TP \fB\fImask\fR\fR мережева маска, яка задається як unsigned long integer з порядком байтів в мережі. .PP \fBПовертає: \fR .in +1c число значимих бітів. .SS unsigned long int prefix2mask (int bits) .PP створює маску мережі з вказаної кількості бітів. .PP .PP Ця функція конвертує довжину префікса в маску мережі. Після появи CIDR (classless internet domain routing - позакласова маршрутизація доменів інтернету, англ., прим. перекл.) більше і більше IP-адрес вказуються в форматі адреса/префікс (напр. 192.168.2.3/24, з відповідною мережевою маскою 255.255.255.0). Якщо Вам потрібно подивитись яка маска мережі відповідає префіксу вказаному з адресою, скористайтесь цією функцією. Див. також \fBmask2prefix\fR. .PP \fBПараметри: \fR .in +1c .TP \fB\fIprefix\fR\fR число бітів для яких потрібно створити маску. .PP \fBПовертає: \fR .in +1c маску мережі з порядком байт в мережі. .SH АВТОР .PP Автоматично згенерований Doxygen для initscripts з вихідних текстів. .SH ПЕРЕКЛАД .br Дмитро Ковальов,