ipcalc.c

Section: C Library Functions (3)
Updated: 30 апреля 2001
Page Index
 

НАЗВАНИЕ

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(длинное_целое_число_без_знака) * 8)
число битов в IP-адресе.
#define IPBYTES (sizeof(длинное_целое_число_без_знака))
число байтов в IP-адресе.  

Функции


длинное_целое_число_без_знака prefix2mask (prefix_в_виде_целого_числа)
создает сетевую маску из указанного числа битов.
целое_число mask2prefix (mask_в_виде_длинного_целого_числа_без_знака)
вычисляет число битов, размаскированных сетевой маской.
длинное_целое_число_без_знака default_netmask (addr_в_виде_длинного_целого_числа_без_знака)
возвращает сетевую маску по умолчанию (каноническую), ассоциированную с указанным IP-адресом.
длинное_целое_число_без_знака calc_broadcast (addr_в_виде_длинного_целого_числа_без_знака, prefix_в_виде_целого_числа)
вычисляет широковещательный адрес и длину префикса заданного IP-адреса.
длинное_целое_число_без_знака calc_network (addr_в_виде_длинного_целого_числа_без_знака, prefix_в_виде_целого_числа)
вычисляет сетевой адрес и префикс для заданного адреса.
постоянная char* get_hostname (addr_в_виде_длинного_целого_числа_без_знака)
возвращает имя хоста, ассоциированное с указанным IP-адресом.
целое_число main (argc_в_виде_целого_числа, постоянная char **argv)
программа-упаковщик для функций ipcalc.  

ПОДРОБНОЕ ОПИСАНИЕ

предоставляет утилиты для обработки IP-адресов.


 ipcalc предоставляет утилиты и консольный графический интерфейс для обработки IP-адресов и вычисления различных аспектов ip: адрес/маска сети/сетевой адрес/префикс/и т.п.

Доступ к функциональным возможностям может быть получен из других языков через описанный здесь интерфейс библиотеки. Для использования ipcalc из командного процессора, прочтите оперативную страницу руководства ipcalc(1).

При передаче параметров в различные функции, обратите внимание на то, принимают ли они порядок хост-байта или порядок сетевого байта. Большинство принимают порядок хост-байта и возвращают порядок хост-байта, но существует ряд исключений.

 

ДОКУМЕНТИРОВАНИЕ ФУНКЦИЙ

 

длинное_целое_число_без_знака calc_broadcast (addr_в_виде_длинного_целого_числа_без_знака, prefix_в_виде_целого_числа)

вычисляет широковещательный адрес заданного IP-адреса и длину префикса.


 

Параметры:

addr
IP-адрес в порядке сетевого байта.
prefix
длина префикса.

Возвраты: вычисленный широковещательный адрес для сети, в порядке сетевого байта.  

длинное_целое_число_без_знака calc_network (addr_в_виде_длинного_целого_числа_без_знака, prefix_в_виде_целого_числа)

вычисляет адрес сети и префикс для указанного адреса.


 

Параметры:

addr
IP-адрес, в порядке сетевого байта
prefix
сетевой префикс

Возвраты: базовый адрес сети, с которым ассоциирован addr, в порядке сетевого байта.  

длинное_целое_число_без_знака default_netmask (addr_в_виде_длинного_целого_числа_без_знака)

возвращает сетевую маску по умолчанию (каноническую), ассоциированную с указанным IP-адресом.


 При первоначальной настройке Интернета все разнообразие диапазонов IP-адресов было разбито на три класса сетей: A, B и C. Эта функция возвращает сетевую маску, ассоциированную с указанным IP-адресом, определяя, где она входит в предопределенные классы. 

Параметры:

addr
IP-адрес в порядке сетевого байта.

Возвраты: сетевая маска в порядке сетевого байта.  

постоянная char * get_hostname (addr_в_виде_длинного_целого_числа_без_знака)

возвращает имя хоста, ассоциированное с указанным IP_адресом.


 

Параметры:

addr
IP-адрес, который необходимо найти для имени хоста, в порядке сетевого байта

Возвраты: имя хоста, или пустое значение, если оно не может быть определено. Имя хоста хранится в статическом буфере, который может исчезнуть в любой момент, вызывающий оператор должен скопировать данные, если они нуждаются в долговременном хранении.  

main (argc_в_виде_целого_числа, постоянная char ** argv)

программа-упаковщик для функций ipcalc.


 Это программа-упаковшик для функций, предоставляемых библиотекой ipcalc. Она может быть использована из скриптов командного процессора ли непосредственно из командной строки.

Более подробную информацию смотрите, пожалуйста, в странице оперативного руководства ipcalc(1).  

целое_число mask2prefix (mask_в_виде_длинного_целого_числа_без_знака)

вычисляет число битов, размаскированных сетевой маской.


 Эта функция вычисляет значащие биты в IP-адресе, заданном сетевой маской. См. также prefix2mask.

Параметры:

mask
сетевая маска, заданная, в виде длинного целого число без знака в порядке сетевого байта.

Возвраты: число значащих битов.  

длинное_целое_число_без_знака prefix2mask (целое_число_битов)

создает сетевую маску из заданного числа битов.


 Эта функция преобразовывает длину префикса в сетевую маску. Так как CIDR (бесклассовая маршрутизация доменов интернет) была отменена, все больше и больше IP-адресов задается в формате адрес/префикс (например, 192.168.2.3/24 с соответствующей сетевой маской 255.255.255.0). Если вам необходимо узнать, какая сетевая маска соответствует префиксной части адреса, то эта функция вам поможет. См. также mask2prefix.

Параметры:

prefix
число битов для создания маски.

Возвраты: сетевая маска, в порядке сетевого байта.  

АВТОР

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

ПЕРЕВОД

Павел Марьянов acid_jack@ukr.net


 

Index

НАЗВАНИЕ
СИНТАКСИС
Определения
Функции
ПОДРОБНОЕ ОПИСАНИЕ
ДОКУМЕНТИРОВАНИЕ ФУНКЦИЙ
длинное_целое_число_без_знака calc_broadcast (addr_в_виде_длинного_целого_числа_без_знака, prefix_в_виде_целого_числа)
длинное_целое_число_без_знака calc_network (addr_в_виде_длинного_целого_числа_без_знака, prefix_в_виде_целого_числа)
длинное_целое_число_без_знака default_netmask (addr_в_виде_длинного_целого_числа_без_знака)
постоянная char * get_hostname (addr_в_виде_длинного_целого_числа_без_знака)
main (argc_в_виде_целого_числа, постоянная char ** argv)
целое_число mask2prefix (mask_в_виде_длинного_целого_числа_без_знака)
длинное_целое_число_без_знака prefix2mask (целое_число_битов)
АВТОР
ПЕРЕВОД