So, our predominantly Windows organization has a print server, but our Macs currently map to network printer via IP. I'm the "junior" guy on my team - I'm being told this is the way it needs to be done, and whether it's right or wrong, I don't know.
That being said, is there a way to extract IP addresses and settings from this windows print server? The only other way I can think of getting these printers into Self Service is to physically go to each printer our users could be using, add it on my laptop, then add it into Admin. I'd love to not do that if necessary.
Depending on how your environment is setup, you may encounter issues like printers with dynamic IPs, or an in-house DNS that isn't maintained with current IPs and devices assigned to them. If your printers have been setup the smart way™, they'll have static IPs and at worst you should be able to print off a configuration page from each printer. If you are unfortunate to have printers with dynamic IPs then you'll need to team up with your server & network folks to incorporate static IPs and/or a DNS that picks up on each newly assigned IP. Otherwise there's no point in aiming at a moving target.
I never get to recommend powershell here, but Powershell.
Unless you have some interesting setup, my guess is the portname is going to be the IP.
Simplest solution is run from the WIndows Print Server:
Get-Printer | select name, portname | Export-csv printerlist.csv
Edit: Added the export piece to be more useful than just seeing the output in powershell.
Are the Macs AD bound? If not perhaps thats the reasoning behind IP printing. However if the Macs are bound and the printers are advertised in the AD directory you can probably pull printer details using a script (you might even be able to script the discovery and install on the fly depending on the number of vendors, drivers etc..
See if any of these give anything meaningful.
dscl "/Active Directory/YOUR_DOMAIN/All Domains" -list /Printers dscl "/Active Directory/YOUR_DOMAIN/All Domains" -read /Printers/SOME_PRINTER dscl "/Active Directory/YOUR_DOMAIN/All Domains" -read /Printers/SOME_PRINTER dsAttrTypeNative:portName
It's pretty common practice to name portnames with the IP address in them.