Network Macros

The macros in the sample network_macros.cfg configuration file below deal with network matters such as host-address conversions, subnets, DNS, etc.

///////////////////////////////////////////////////////////////////////////////
 
// networking macros
 
///////////////////////////////////////////////////////////////////////////////
 
addr2host(A)	// for the given ipaddr (A), return the associated host (as
		// resolved by nslookup)
		// (A) is the ipaddr (e.g., 123.111.222.111)
		$trim($command("=nslookup -sil (A) 2>/dev/null |
                                =egrep -i '^name:' | =awk '{print \$NF}'"))

///////////////////////////////////////////////////////////////////////////////

nsname(H)	// for host (H), return the Name: field from nslookup
		$trim($command("=nslookup -sil (H) 2>/dev/null |
                                =egrep -i '^name:' | =awk '{print \$NF}'"))

nsaddr(H)	// for host (H), return the Address: field from nslookup
		$trim($command("=nslookup -sil (H) 2>/dev/null | =tail -n +4 |
                                =egrep -i '^address:' | =awk '{print \$NF}'"))
///////////////////////////////////////////////////////////////////////////////

fqdn(H)		// for host (H), return the FQDN (fully qualified domain name);
		// if =nsname() (nslookup) results are nil, return (H)
		$if(#length(=nsname((H))), =nsname((H)), "(H)")

///////////////////////////////////////////////////////////////////////////////

host2addr(H)	// for the given host (H), return the associated addr (as
		// resolved by nslookup)
		// (H) is the host (e.g., hamburg.uppity.edu)
		$trim($command("=nslookup -sil (H) 2>/dev/null |
                                =grep '^Address:' | =tail -n +2 | =awk '{print \$NF}'"))

///////////////////////////////////////////////////////////////////////////////

resolveipaddr(L)
		// for line (L), resolve any ipaddr to hostname
		if (L) =~ "(.+)[[:space:]]([[:digit:]]{1,3}\\.[[:digit:]]{1,3}\\.
                                           [[:digit:]]{1,3}\\.[[:digit:]]{1,3})(.*)"
			set (L) = "$1 $2 [" . =addr2host($2) . "]" . $3
		endif

///////////////////////////////////////////////////////////////////////////////

subnets         10.1.0
                10.1.1
                10.1.2
                10.2.0
                10.2.1
                10.2.253
                10.2.254
                [...]

rpcprgnum       836129415

rpcprtnum
#if rouen
                935
#elsif cadiz | stockholm
                159
#else
                638
#endif

ip_address_piktmaster   // the ip addr, in dotted decimal, of the master
                        // control machine
                        123.111.222.101

ethernet_address_piktmaster     11:22:33:dd:ee:ff

ip_address_local_domains        // the ip addrs, in dotted decimal, of our
                                // local domains
                                123.111.130|123.101.202|123.111.135|123.100.200

ip_address_sysadmins    123.111.222.102         // hamburg
                        123.111.222.103         // cadiz
                        123.111.222.104         // trondheim

// in our files/hosts_deny_files.cfg, for the file /etc/hosts.deny, we might
// have something like:
//
// #if vienna
//     ALL : ALL EXCEPT 111.222.100.200 =ip_address_sysadmins
//
// ...
//
// we might have something similar in our files/hosts_allow_files.cfg;
// we might also use =ip_address_sysadmins when monitoring access logs,
// filtering out the connects from =ip_address_sysadmins, and reporting
// all the rest

///////////////////////////////////////////////////////////////////////////////

ntpserver       123.222.111.222

///////////////////////////////////////////////////////////////////////////////

// dns stuff

nameddir        /var/lib/named
zondir          =nameddir/master

zonttl          $TTL 3600

namedfiles
                db.earlymusicradio.com
                db.earlymusicradio.net
                db.earlymusicradio.org
                db.earlymusicchicago.com
                db.earlymusicchicago.org
                db.earlymusichicago.com
                db.earlymusichicago.org
                db.pikt.net
                db.pikt.org
 
///////////////////////////////////////////////////////////////////////////////

For more examples, see Samples.

 
Home | FAQ | News | Intro | Samples | Tutorial | Reference | Software
Developer's Notes | Licensing | Authors | Pikt-Users | Pikt-Workers | Related Projects | Site Index | Privacy Policy | Contact Us
Page best viewed at 1024x768 or greater.   Page last updated 2019-01-12.   This site is PIKT® powered.
Copyright © 1998-2019 Robert Osterlund. All rights reserved.
Home FAQ News Intro Samples Tutorial Reference Software
PIKT Logo
PIKT Page Title
See how to
automatically report
network service failures