ipcalc.c

Section: C Library Functions (3)
Updated: 30 Dub 2001
Page Index
 

NÁZEV

ipcalc.c - obsahuje užitečné funkce pro manipulaci s IP adresami.  

SYNAPSE


#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>

 

Definice


#define IPBITS (sizeof(unsigned long int) * 8)
počet bitů v IP adrese.
#define IPBYTES (sizeof(unsigned long int))
počet bajtů v IP adrese.  

Funkce


unsigned long int prefix2mask (int prefix)
vytvoří síťovou masku ze zadaného počtu bitů.
int mask2prefix (unsigned long int mask)
vypočítá počet bitů zamaskovaných síťovou maskou.
unsigned long int default_netmask (unsigned long int addr)
vrací výchozí (kanonickou) síťovou masku asociovanou se zadanou IP adresou.
unsigned long int calc_broadcast (unsigned long int addr, int prefix)
vypočítá adresu pro všesměrové vysílání ze zadané IP adresy a délky prefixu.
unsigned long int calc_network (unsigned long int addr, int prefix)
vypočítá síťovou adresu pro zadanou adresu a předponu (prefix).
const char* get_hostname (unsigned long int addr)
vrací název počítače asociovaný se zadanou IP adresou.
int main (int argc, const char **argv)
program pro zabalení (wrapper) funkcí ipcalc.  

PODROBNÝ POPIS

obsahuje užitečné funkce pro manipulaci s IP adresami.

Knihovna ipcalc obsahuje užitečné funkce a rozhraní pro příkazovou řádku pro manipulaci s IP adresami, a počítání různých aspektů IP adresy/síťové masky/síťové adresy/prefixu/atd.

Funkcionalita je dosažitelná z rozhraní knihovny různými jazyky; rozhraní knihovny je zde zdokumentováno. Chcete-li použít funkce ipcalc ze shellu, přečtěte si manuálovou stránku ipcalc(1).

Při předávání parametrů různým funkcím si všimněte, zda-li vyžadují síťové pořadí bajtů nebo pořadí bajtů počítače. Většina funkcí vyžaduje pořadí bajtů podle počítače, a vrací pořadí bajtů podle počítače, jsou zde ale výjimky.

 

DOKUMENTACE FUNKCÍ

 

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

vypočítá adresu pro všesměrové vysílání ze zadané IP adresy a délky prefixu.


 

Parametry:

addr
IP adresa v síťovém pořadí bajtů.
prefix
délka prefixu.

Vrací: vypočítaná adresa pro všesměrové vysílání pro síť, v síťovém pořadí bajtů.  

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

vypočítá adresu sítě ze zadané adresy a prefixu.


 

Parametry:

addr
IP adresa, v síťovém pořadí bajtů
prefix
síťový prefix

Vrací: základní adresa sítě, se kterou je asociovaná addr, v síťovém pořadí bajtů.  

unsigned long int default_netmask (unsigned long int addr)

vrací výchozí (kanonickou) síťovou masku asociovanou se zadanou IP adresou.

Když byl Internet původně vytvořen, byly různé rozmezí IP adres odděleny do tří síťových tříd: A, B a C. Tato funkce vrátí síťovou masku, která je asociovaná se zadanou IP adresou, a která určuje, do které třídy adresa spadá.

Parametry:

addr
IP adresa v síťovém pořadí bajtů.

Vrací: síťovou masku v síťovém pořadí bajtů.  

const char * get_hostname (unsigned long int addr)

vrací název počítače asociovaný se zadanou IP adresou.


 

Parametry:

addr
IP adresa, pro kterou se má nalézt název počítače, v síťovém pořadí bajtů

Vrací: název počítače nebo hodnota NULL, pokud nelze název určit. Název počítače je uložen ve statickém bufferu, který může být kdykoli zničen; volající by měl data zkopírovat, pokud potřebuje permanentní uložení.  

main (int argc, const char ** argv)

program pro zabalení (wrapper) funkcí ipcalc.

Toto je program pro zabalení (wrapper) funkcí, které obsahuje knihovna ipcalc. Tuto knihovnu lze použít ze skriptů shellu nebo přímo z příkazové řádky.

Více informací lze nalézt v manuálových stránkách ipcalc(1).  

int mask2prefix (unsigned long int mask)

vypočítá počet bitů maskovaný síťovou maskou.

Tato funkce vypočítá signifikantní bity v IP adrese se zadanou síťovou maskou. Viz také prefix2mask.

Parametry:

mask
síťová maska, zadaná jako unsigned long integer v síťovém pořadí bajtů.

Vrací: počet signifikantních bitů.  

unsigned long int prefix2mask (int bits)

vytvoří síťovou masku ze zadaného počtu bitů.

Tato funkce převede délku prefixu na síťovou masku. Poté, co začal být používán routing CIDR (Classless Internet Domain Routing), je stále více IP adres zadáváno ve formátu adresa/prefix (např. 192.168.2.3/24, s odpovídající síťovou maskou 255.255.255.0). Tuto funkci použijete, pokud potřebujete zjistit, jaká síťová maska odpovídá části s prefixem adresy. Viz také mask2prefix.

Parametry:

prefix
počet bitů, pro které se má maska vytvořit.

Vrací: síťovou masku, v síťovém pořadí bajtů.  

AUTOR

Automaticky generováno programem Doxygen pro zaváděcí skripty ze zdrojového kódu.


 

Index

NÁZEV
SYNAPSE
Definice
Funkce
PODROBNÝ POPIS
DOKUMENTACE FUNKCÍ
unsigned long int calc_broadcast (unsigned long int addr, int prefix)
unsigned long int calc_network (unsigned long int addr, int prefix)
unsigned long int default_netmask (unsigned long int addr)
const char * get_hostname (unsigned long int addr)
main (int argc, const char ** argv)
int mask2prefix (unsigned long int mask)
unsigned long int prefix2mask (int bits)
AUTOR