如何从C#网络上的IP访问打印机名称?

我可以使用名称“\\ xxxx \ [打印机名称]”访问打印机,但不知道如何仅使用打印机的IP访问它。 有任何想法吗?

编辑:答案似乎表明我可以简单地换掉打印机的IP地址的打印机名称,但似乎并非如此。 还有更多想法吗?

更新:将打印机作为IP进行寻址的原因是,网络人员给所有打印机提供了相同的共享名称,因此除了IP之外,我无法区分它们。

完全相同的方式。

\\1.2.3.4\somesharedprinter 

其中“1.2.3.4”是共享打印机的IP地址。

编辑:

即使您的打印机具有内置网络接口,让我们暂时将打印机与打印服务器分开。

当你有一台电脑时,让我们称之为Bob,然后你共享一台打印机,我们称之为打印机,你可以像这样访问它:

\\Bob\printy

该地址的第一部分是主机名或IP地址。 如果Bob的IP地址是1.2.3.4,您可以轻松使用此地址:

\\1.2.3.4\printy

现在听起来你的打印机有一个内置的打印服务器,它允许它基本上通过网络共享自己。 这些打印服务器中的大多数与Windows文件/打印机共享完全兼容。 因此,如果打印机的IP是2.3.4.5,我们可以使用这样的地址:

\\2.3.4.5\something

你想要something ,是吗? 为此,我们需要枚举该打印服务器上的共享。 您可以使用以下代码执行此操作: http : //www.codeproject.com/KB/IP/networkshares.aspx

据我所知,没有可管理的方法来获取服务器上的共享列表,因此上面的链接可能是您现在最好的选择。

我还应该注意,打印服务器的另一个常见标准是HP Jet Direct。 在你的系统上安装打印机之前,你不能(你可以,但它是hackish)打印到这些。 要执行此操作,您将转到打印机,添加打印机,选择“本地”(是,违反直觉)打印机,然后为端口选择TCP / IP,然后输入IP地址。

如果它具有主机名,则它具有IP,并且可以根据需要互换它们。

 \\MyMachine\MyPrinter 

……相当于……

 \\10.0.0.1\MyPrinter 

如果您的打印机不在计算机上并且是联网打印机,则它将具有您自己可以使用的IP地址。

 \\MyPrinter 

……相当于……

 \\10.0.0.2