Как получить доступ к имени принтера с IP в сети в C #? - PullRequest
1 голос
/ 07 января 2011

Я могу добраться до принтера с именем «\\ xxxx \ [имя принтера]», но не знаю, как получить к нему доступ только по IP-адресу принтера.Любые идеи?

РЕДАКТИРОВАТЬ: Ответы, кажется, предполагают, что я могу просто поменять имя принтера для IP-адреса принтера, однако это не так.Есть еще идеи?

ОБНОВЛЕНИЕ: причина адресации принтера как IP-адреса заключается в том, что сетевые парни дали всем принтерам одно и то же имя общего ресурса, поэтому у меня нет никакого способа отличить их, кроме их IP.

Ответы [ 2 ]

6 голосов
/ 07 января 2011

Точно так же.

\\1.2.3.4\somesharedprinter

Где "1.2.3.4" - это IP-адрес всего, что разделяет принтер.

Редактировать:

Даже если ваш принтер имеет встроенный сетевой интерфейс, давайте на время мысленно отделим принтер от сервера печати. ​​

Если у вас есть компьютер, давайте назовем его Бобом, и вы поделитесь принтеромназовем его printy, доступ к нему можно получить следующим образом:

\\Bob\printy

Первая часть этого адреса - это имя хоста или IP-адрес.Если бы IP-адрес Боба был 1.2.3.4, вы могли бы легко использовать этот адрес вместо этого:

\\1.2.3.4\printy

Теперь похоже, что ваш принтер имеет встроенный сервер печати, который позволяет ему по существуподелиться себя по сети.Большинство из этих серверов печати полностью совместимы с Windows File / Printer Sharing.Поэтому, если IP-адрес принтера - 2.3.4.5, мы могли бы использовать такой адрес:

\\2.3.4.5\something

Вам нужна часть something, да?Для этого нам нужно перечислить общие ресурсы на этом сервере печати.Вы можете сделать это с помощью кода, найденного здесь: http://www.codeproject.com/KB/IP/networkshares.aspx

Насколько мне известно, не существует управляемого способа получить список общих ресурсов на сервере, поэтому приведенная выше ссылка, вероятно, является для вас лучшим вариантом на данный момент.

Следует также отметить, что другим распространенным стандартом для серверов печати является HP Jet Direct.Вы не можете (хорошо, но это хакерски) печатать на них, пока не установите принтер в своей системе.Для этого перейдите в раздел «Принтеры», «Добавить принтер», выберите «локальный» (да, нелогичный) принтер, затем в качестве порта выберите «TCP / IP» и введите IP-адрес.

2 голосов
/ 07 января 2011

Если у него есть имя хоста, у него есть IP-адрес, и они могут при необходимости заменяться.

\\MyMachine\MyPrinter

... соответствует ...

\\10.0.0.1\MyPrinter

Если ваш принтерне находится на машине и является сетевым принтером, у него будет собственный IP-адрес, который вы можете использовать.

\\MyPrinter

... соответствует ...

\\10.0.0.2
...