[fpc-pascal] [NETWORK - LINUX ]: Calculate broadcast - network

Michael Van Canneyt michael at freepascal.org
Thu Oct 12 22:14:22 CEST 2006



On Thu, 12 Oct 2006, TOUZEAU DAVID wrote:

> <message>
> </message>
> 
> Dear
> 
> The tool is designed to simplify the change network settings quickly.
> 
> So the goal for the admin is to type:
> 
> #./tool 192.168.1.2 255.255.255.0 192.168.1.1
> 
> and the tool will change settings in /etc/network/interfaces by
> 
> iface eth0 inet static
>         address 192.168.1.2
>         netmask 255.255.255.0
>         network 192.168.xx.0
>         broadcast 192.168.xx.255
>         gateway 192.168.1.1
> 

Use the sockets unit:

Var
  sa,sn,nw,bc : string;
  A,N : cardinal;
  IA : in_addr; // in sockets unit.
  

a:=StrToHostAddr(sa).s_addr;  // Get IP in longint
n:=StrToHostAddr(sn).s_addr;  // Get Netmask in longint.
nw:=a and N;                  // Network.
bc:=A and not N;              // broadcast
ia.s_addr:=a and N;           // Calculate network
nw:=HostAddrToStr(ia);        // Convert to string
ia.s_addr:=a and not N;       // Calculate broadcast
bc:=HostAddrToStr(ia);        // Convert to string.

Michael.



More information about the fpc-pascal mailing list