Prueba esto:
cat you_file.prn | netcat -w 1 printer_ip 9100
Si usa bash entonces:
cat /path/to/file > /dev/tcp/10.11.234.75/9100
Lo que quieres hacer probablemente no sea factible. Si las impresoras en los extremos de estas direcciones IP son solo impresoras aleatorias, entonces el servidor que está construyendo necesitará saber qué controlador usar para poder imprimir en ellas. Si no los ha instalado de ninguna manera de antemano, entonces no funcionará.
Si solo desea hablar con otros servidores de Protocolo de impresión de Internet (IPP), entonces es posible, aunque no necesariamente elegante. No conozco ninguna otra implementación de Linux de un cliente IPP que no sea CUPS, y CUPS requiere que instale impresoras por adelantado. Sin embargo, esto se puede hacer muy fácilmente (como se explica aquí). Es el mismo código para agregar una impresora normal (pero necesita saber qué controlador usar) que para un servidor IPP. Alternativamente, puede encontrar otra implementación de IPP (o escribir una; debería ser bastante simple enviar un documento) que no requiera la instalación de impresoras.
Aquí está el código para agregar una impresora IPP a CUPS:
lpadmin -E -p <printer-name> -v http://<ip_address>:631/<dir>/<printer> -L <location> -E
<printer-name>
y <location>
puede ser lo que quiera, y necesita la ruta de red completa a la impresora.
Para agregar una impresora normal:
lpadmin -E -p <printer-name> -v <device-uri> -m <model> -L <location> -E
Esto es lo mismo, excepto que necesitas dar un <model>
, que es el controlador de la impresora. Desechar el primer -E
si no desea encriptación.
Si desea eliminar la impresora después, use esto:
lpadmin -x <printer-name>