_Printers = new PrintServer().GetPrintQueues(new[] {
EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections});
上面的代码允许我获取可供我打印的打印机列表。其中一个打印机描述如下:
\\EYZR370\HP Color LaserJet 2605dn,HP Universal Printing PCL 6 (v5.1),
现在我正在尝试使用以下方式手动查找打印机的IP地址:
1 - >转到“控制面板”
2→查看设备和打印机
3→右键单击HP Color LaserJet 2605dn并选择打印机属性
4->选择端口选项卡以查看IP地址
现在它显示了IPAddress,例如192.157.6.8
我想知道192.157.6.8 == EYZR370?
所以我尝试以下方式:
string hostName = System.Net.Dns.GetHostEntry("192.157.6.8").HostName;
令人惊讶的是hostName
有另一个字符串值,我不知道它是什么。
任何人都可以解释一下我的情况是什么吗?
更新
我使用以下方式完成了另一项测试
IPHostEntry hostEntry;
hostEntry = Dns.GetHostEntry("EYZR370");
//you might get more than one ip for a hostname since
//DNS supports more than one record
if (hostEntry.AddressList.Length > 0)
{
//var ip = hostEntry.AddressList[0];
}
我可以看到hostEntry.AddressList
有6个数据,但它们都不匹配192.157.6.8
?
答案 0 :(得分:0)
HostName
属性返回主主机名。
您可能需要查看Aliases
属性,该属性返回可能的别名列表。如果您的计算机有多个DNS名称解析为192.157.6.8
,那么您将在上述属性中找到它。
您可能还想尝试类似(虽然过时)的方法,例如Dns.Resolve
和Dns.GetHostByAddress
。有些人报告说这些方法的工作方式不同。
打印机是否配置正确?打印机似乎没有主机名或DNS没有正确配置?或者你可能完全错了名字?您是否可以访问其Web控制面板?