ipcalc.c(3)

НАЗВА
ipcalc.c - забезпечує набір утиліт для оперування IP-адресами.

ВИКОРИСТАННЯ

#include <ctype.h>
#include <popt.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>

  Визначає
#define IPBITS (sizeof(unsigned long int) * 8)
кількість біт в IP-адресі.
#define IPBYTES (sizeof(unsigned long int))
кількість байт в IP-адресі.

  Functions
unsigned long int prefix2mask (int prefix)
створює маску мережі з вказаної кількості біт.
int mask2prefix (unsigned long int mask)
обчислює номер біт маскованих шаблоном мережевої маски.
unsigned long int default_netmask (unsigned long int addr)
повертає стандартну (канонічну) маску мережі зв'язано з вказаною IP-адресою."
unsigned long int calc_broadcast (unsigned long int addr, int prefix)
обчислює адресу трансляції (broadcast address) з IP-адреси і довжини префікса."
unsigned long int calc_network (unsigned long int addr, int prefix)
обчислює мережеву адресу для вказаної адреси і префікса.
const char* get_hostname (unsigned long int addr)
повертає назву хоста відповідного вказаній IP-адресі.
int main (int argc, const char **argv)
програма-обгортка для функцій ipcalc.

ДОКЛАДНИЙ ОПИС

забезпечує набір утиліт для оперування IP-адресами.

 ipcalc забезпечує утиліти і командний інтерфейс для оперування IP-адресами і обчислення різноманітних параметрів IP - адрес/масок/мережевих адрес/префіксів, тощо.

Ці ж функції можна викликати з інших мов через інтерфейс бібліотеки. Щоб користуватись ipcalc з командної оболонки, зверніться до сторінок посібника ipcalc(1).

Коли передаєте параметри до різноманітних функцій, будь ласка, звертайте увагу, чи вони приймають адресу з порядком байтів на машині чи з порядком байтів у мережі. Більшість команд приймають порядок байтів на машині і повертають також, але бувають деякі виключення.

ДОКУМЕНТАЦІЯ ДО ФУНКЦІЙ

  unsigned long int calc_broadcast (unsigned long int addr, int prefix)

обчислює адресу трансляції з заданої IP-адреси і довжини префікса.

Параметри:

addr
    IP-адреса з порядком байтів в мережі.

prefix
    довжина префікса.

Повертає:
обчислену адресу трансляції для мережі, з мережевим порядком байтів.

  unsigned long int calc_network (unsigned long int addr, int prefix)

обчислює адресу мережі для вказаної адресу і префікса.

Параметри:

addr
    IP-адреса з порядком байтів в мережі

prefix
    префікс мережі

Повертає:
базову адресу мережі (з якою співвідноситься addr) з порядком байтів в мережі.

  unsigned long int default_netmask (unsigned long int addr)

повертає стандартну (канонічну) маску мережі зв'язану з вказаною IP-адресою.

Під час заснування інтернету різноманітні діапазони IP-адрес були поділені на три класи: A, B і С. Ця функція повертає маску мережі, яка асоціюється з вказаною IP-адресою, визначаючи, де вона попадає в наперед встановлені класи.

Параметри:

addr
    IP-адреса з порядком байтів в мережі.

Повертає:
мережеву маску з порядком байтів в мережі.

  const char * get_hostname (unsigned long int addr)

повертає назву хоста відповідну вказаній IP-адресі.

Параметри:

addr
    IP-адреса, для якої шукається назва хоста з порядком байтів в мережі

Повертає:
назву хоста чи значення NULL, якщо назва не вдається визначити. Назва хоста зберігається в статичному буфері, який може зникнути в будь-який момент, якщо користувачеві потрібно зберегти це значення, його потрібно скопіювати в місце постійного зберігання.

  main (int argc, const char ** argv)

головна програма-обгортка для функцій ipcalc.

Це програма-обгортка для функцій наданих бібліотекою ipcalc. Вона може використовуватись в скриптах командної оболонки чи пряму у командному рядку.

Додаткову інформацію можна отримати з сторінки посібника ipcalc(1).

  int mask2prefix (unsigned long int mask)

обчислює кількість біт відфільтрованих мережевою маскою.

Ця функція обчислює значимі біти в IP-адресі в залежності від мережевої маски. Див. також prefix2mask.

Параметри:

mask
    мережева маска, яка задається як unsigned long integer з порядком байтів в мережі.

Повертає:
число значимих бітів.

  unsigned long int prefix2mask (int bits)

створює маску мережі з вказаної кількості бітів.

Ця функція конвертує довжину префікса в маску мережі. Після появи CIDR (classless internet domain routing - позакласова маршрутизація доменів інтернету, англ., прим. перекл.) більше і більше IP-адрес вказуються в форматі адреса/префікс (напр. 192.168.2.3/24, з відповідною мережевою маскою 255.255.255.0). Якщо Вам потрібно подивитись яка маска мережі відповідає префіксу вказаному з адресою, скористайтесь цією функцією. Див. також mask2prefix.

Параметри:

prefix
    число бітів для яких потрібно створити маску.

Повертає:
маску мережі з порядком байт в мережі.

АВТОР

Автоматично згенерований Doxygen для initscripts з вихідних текстів.

ПЕРЕКЛАД
Дмитро Ковальов, <kov@tokyo.emai.ne.jp>