ipcalc.c
ÐÐÐÐÐ
ÐÐÐÐÐ ÐСТÐÐÐЯ
ÐÐÐÐÐÐÐÐÐ ÐÐÐС
ÐÐÐУÐÐÐТÐЦÐЯ ÐРФУÐÐЦÐÐ
ÐÐТÐÐ
ÐÐÐ ÐÐÐÐÐ
ÐÐÐÐÐ
ipcalc.c − забезпеÑÑÑ Ð½Ð°Ð±ÑÑ ÑÑилÑÑ Ð´Ð»Ñ Ð¾Ð¿ÐµÑÑÐ²Ð°Ð½Ð½Ñ IP-адÑеÑами.
ÐÐÐÐÐ ÐСТÐÐÐЯ
#include
#include
#include
#include
#include
#include
#include
#include
ÐизнаÑаÑ
#define IPBITS (sizeof(unsigned long int) bodies manpages.csv script_extrae_body.sh script.sh usr 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 bodies manpages.csv script_extrae_body.sh script.sh usr get_hostname (unsigned long int addr)
повеÑÑÐ°Ñ Ð½Ð°Ð·Ð²Ñ ÑоÑÑа вÑдповÑÐ´Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ñй IP-адÑеÑÑ.
ÐаÑамеÑÑи:
addr |
IP-адÑеÑа, Ð´Ð»Ñ ÑÐºÐ¾Ñ ÑÑкаÑÑÑÑÑ Ð½Ð°Ð·Ð²Ð° ÑоÑÑа з поÑÑдком байÑÑв в меÑÐµÐ¶Ñ |
ÐовеÑÑаÑ:
Ð½Ð°Ð·Ð²Ñ ÑоÑÑа Ñи знаÑÐµÐ½Ð½Ñ NULL, ÑкÑо назва не вдаÑÑÑÑÑ Ð²Ð¸Ð·Ð½Ð°ÑиÑи. Ðазва ÑоÑÑа збеÑÑгаÑÑÑÑÑ Ð² ÑÑаÑиÑÐ½Ð¾Ð¼Ñ Ð±ÑÑеÑÑ, Ñкий може зникнÑÑи в бÑдÑ-Ñкий моменÑ, ÑкÑо коÑиÑÑÑваÑÐµÐ²Ñ Ð¿Ð¾ÑÑÑбно збеÑегÑи Ñе знаÑеннÑ, його поÑÑÑбно ÑкопÑÑваÑи в мÑÑÑе поÑÑÑйного збеÑÑганнÑ.
main (int argc, const char bodies manpages.csv script_extrae_body.sh script.sh usr 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 з виÑÑÐ´Ð½Ð¸Ñ ÑекÑÑÑв.
ÐÐÐ ÐÐÐÐÐ
ÐмиÑÑо ÐовалÑов,