Печать, сгенерированная сервером, печать на принтере, ближайшем к пользователю

StackOverflow https://stackoverflow.com/questions/1503962

  •  19-09-2019
  •  | 
  •  

Вопрос

У нас есть приложение SAAS, в котором отчеты и другие задания на печать генерируются на наших серверах приложений, а затем отправляются в очереди печати CUPS.Очередь печатает на принтерах на клиентских сайтах через IP-печать;пока все работает нормально.

Однако у нас есть новое требование к новому клиенту.Они хотят, чтобы задание на печать печаталось на принтере, ближайшем к используемой в данный момент рабочей станции.Это группа из 8 общих рабочих станций, на каждой рабочей станции рядом установлены два принтера:лазерный принтер и термопринтер этикеток.Принтеры подключены к сети и имеют свой собственный IP-адрес.Они поддерживают IP-печать.

Поскольку пользователь заходит, он просто выбирает открытую рабочую станцию.Мы не можем привязать принтеры к пользователям.Как мы можем идентифицировать рабочую станцию и сопоставить ее близлежащие принтеры?Достаточно просто, как только мы идентифицируем рабочую станцию, создать таблицу базы данных, в которой она хранится рядом с принтерами, к которым мы можем запросить, но как мы ИДЕНТИФИЦИРУЕМ рабочую станцию?

Печенье?Что произойдет, если они удалят всю историю браузера?Другие идеи?

Это было полезно?

Решение

Как насчет использования этой техники для получения IP-адреса клиента с помощью JavaScript и последующей отправки его обратно на сервер:

http://www.gnucitizen.org/projects/javascript-address-info/

Затем вы можете сопоставить IP с портом NAT и получить уникальное сопоставление.На самом деле он описывает проблему, очень похожую на вашу.

Другие советы

Возможно, я неправильно понимаю, но из того, что я прочитал, следует, что как только вы определите рабочую станцию, вы сможете построить статическую карту близлежащих принтеров?Если да, то почему бы не использовать IP рабочей станции в качестве идентификатора.Это должно быть прямолинейно, чтобы прочитать его из HTTP-запроса.

Что касается немного более экзотического решения.Если ваша сетевая настройка достаточно формальна в том смысле, что близлежащие принтеры, вероятно, будут использовать общий маршрутизатор / коммутатор, вы могли бы отследить маршрут от сервера SAAS к рабочей станции (1), а затем к каждому принтеру (2).Затем сопоставление (1) и (2) и поиск тех, у которых ближайший коммутатор к конечному IP, должны дать вам ближайший принтер.

Итак, допустим, рабочая станция A и принтер A находятся ближе всего, они подключены к коммутатору B, который через несколько переходов подключается к коммутатору C, и именно к нему также подключены ваши серверы.

(1) должно выглядеть примерно так:

Hop 1: Server IP 
Hop .....
Hop 2: Switch M
Hop .....
Hop n-1: Switch A
Hop m: Workstation A

Один из маршрутизаторов из (2) должен совместно использовать последние два перехода

Hop n: Switch A
Hop m: Workstation A

Поэтому возьмите принтер, где m-n - наименьшее число.

Я бы, конечно, выбрал решение static IP to printer, потому что оно простое, но в случае, если это не вариант, то, возможно, последнее.Но это только в том случае, если настройка сети достаточно масштабна и формальна.

HTH Алекс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top