This is one of those questions I'm a bit embarrassed to ask, suspecting that there's a small (but very important) gap in what I've taught myself about networks over the last couple years. Basically, I've got a Xerox 1600n plugged into the network, and it has no problem getting an IP, but so far, I've only been able to get it printing by using IPP & the IP address, which means it has to be re-installed on machines if that address changes.

I'd like to either make it discoverable to both macs & pcs in the simplest possible way, so that it'll magically pop up when my coworkers want to add a printer, or give it an internal name that'll resolve to the current IP address, whatever it is, so people can add xerox_1600n instead of 192.168.X.X. My sense is that there are probably 12 different ways I could do this, so I'm looking for advice about the different ways this could be done, and the reasons one might choose one over the other. Any ideas?

Depending on what DNS server you are using, and how it is configured, the name 'xerox_1600n' may be invalid. The underscore is generally not a valid character to use in a hostname.
–
ZoredacheOct 21 '09 at 16:52

Now we're getting to the heart of my networking gap: we're using our ISP's DNS. There's a level I can set this at before the lookup gets out of the office, though, right? Router?
–
jj_aaOct 21 '09 at 20:05

If your router also has a DNS service that can operate on the internal interface, then yes. More likely you will need to set up an internal DNS server that clients use by default (assigned by DHCP). Assuming your network is pretty small, you can add DNS to an existing server without much issue.
–
shuflerOct 22 '09 at 15:03

If it receives DHCP, then you probably have a feature to set a hostname directly on the printer itself, either via the control panel on the printer, or the web interface accessible by http-ing to the printer's IP.

If your network is windows based, I would recommend setting up this printer on a specific machine or server that will function as the print server, and then share it on the network, thus users will connect to the printer through that particular machine, which will do all the spooling and coordination of print jobs for all the users.

If I set the hostname to "1600n-printer", then ping 1600n-printer, I'm told the host can't be resolved. I'm assuming this is because my lookup is taking place with our ISP's DNS; how can I insert a record between my machine and our ISP's DNS?
–
jj_aaOct 21 '09 at 20:12

Your ISP's dns should not matter inside your network for local resolution. Is this an Active Directory network? Are your only DNS servers external ones?
–
DanBigOct 21 '09 at 20:18

No Active Directory, and yes, only external.
–
jj_aaOct 22 '09 at 0:35

I don't get something - you have internal DHCP on your network (you said the ip of the printer changes occasionally) - but no internal DNS? Somewhat bizzare, i'd say. Set up a dns server then :)
–
V. RomanovOct 22 '09 at 10:56

Typically, the computers on the network will use an internal DNS server to resolve addresses. This internal DNS server (DNSB) typically runs on the router, if it is not a dedicated machine. Any address that is not resolved at the internal router is resolved at a higher level DNS, typically your ISP DNS server (DNSA).

So, to get your PC to see your PRINTER using a name, you will need to modify the settings in your internal (DNSB) DNS server.

If your computers obtain addresses automatically via DHCP, you will need to enter a static lease configuration in your router. Configure this to map your PRINTER MAC address to a static IP.

Once the PRINTER IP is static, configure the internal DNS server with an extra entry that points to the printer IP using its hostname.

If you don't run a dedicated DNS server and your router is a standard consumer grade router, you probably are not running DNS at all, contrary to what others have said. Your computers are probably finding each other by NETBIOS name, which will work, but is much less reliable than DNS.

What you can do is either set a static IP on the printer, so that the address never changes, or you can take an old machine and set up an internal DNS server on it.

If the printer has support for ZeroConf (Bonjour), enable it. Then it should magically appear on all Macs, as "printername.local" on all Linux machines with libnss-mdns installed, and on all Windows machines with Bonjour for Windows installed.

If the printer has SMB support, and you enable it, it should magically appear on Windows machines, and maybe on Linux machines and Macs - it depends.