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