subnet as $subnet) { $tmp=''; foreach ($subnet->IP as $ip) { # Need to output octets in reverse order list( $ip1, $ip2, $ip3, $ip4 ) = split( "\.", $ip['address'], 4 ); # Only "A-Z", "a-z", "-" and "0-9" are allowed $nick = preg_replace( '/[^A-Za-z-0-9]/i', '', $ip['nick'] ); # Nice looking TABs if( strlen( "$ip4$ip3$ip2" ) < 6 ) { $ip2.="\t"; } $tmp .= "$ip4.$ip3.$ip2\tIN\tPTR\t$nick--{$ip['device_id']}.ip.guifi.net.\n"; } switch ($subnet['range'] ) { case '172': $rrz172 .= $tmp; break; case '10': $rrz10 .= $tmp; break; } } $fn="172.ip.guifi.net.rrz"; $h = fopen($fn, 'w') or die( "Unable to create file ($fn), check filesystem permissions.\n" ); fwrite($h, $rrz172) or die( "Unable to write to file ($fn).\n" ); fclose($h); $fn="10.ip.guifi.net.rrz"; $h = fopen($fn, 'w') or die( "Unable to create file ($fn), check filesystem permissions.\n" ); fwrite( $h, $rrz10 ) or die( "Unable to write to file ($fn).\n" ); fclose($h); ?>