in reply to Listing Appletalk printers in perl
Netatalk should have all the parts you need. Your kernel will need the ddp module loaded. In AppleTalk land, DDP is similar to UDP and most applications use it. ADSP came along later which is more like TCP but it wasn't entirely popular. But I digress....
You're looking to do a NBP (Name Binding Protocol) lookup, the nomenclature will be something like "=:LaserWriter" and if you have EtherTalk Phase II Zones, "=:LaserWriter@*" or put your Zone names in by hand.
Then once you know where the LaserWriters are, you can use PAP (Printer Access Protocol), pap(1), to send some PostScript commands at the printers to retrieve printer information.
Last decade I wrote a perl script using the above tools to rename all the printers in a department for April Fool's. The names were exchanged so the prints came out, but not at the expected printer. Hilarity ensued. A dbm database was used to store the changes for easy reversion.