![根据 MAC 地址获取 IP 地址](https://linux22.com/image/615807/%E6%A0%B9%E6%8D%AE%20MA%E2%80%8B%E2%80%8BC%20%E5%9C%B0%E5%9D%80%E8%8E%B7%E5%8F%96%20IP%20%E5%9C%B0%E5%9D%80.png)
我正在编写一个类,将 POS 读卡器设备集成到我们的软件中。为了使它工作,我必须知道它使用的 IP。服务提供商向我们提供了一些示例代码,他们这样做的方式是打开一个网站(http://www.ebizchargeemv.com/getip.php?mac={设备的MAC地址})并返回设备的IP地址。
我使用的设备是POSLynx220Mini。它有一个以太网端口,可连接到互联网以与服务提供商通信。我向它发送 TCP 数据,然后该设备控制密码键盘提示客户刷卡。它可能是一台与服务提供商通信并使用 PIN 键盘作为输入设备的微型计算机。
只是好奇,但他们是如何实现的?他们是使用 ARP 实现的吗?我打算不使用他们的网站来确定设备的 IP。我见过一些使用 ARP 的代码,但在其中一台 PC 上执行 ARP 却没有检测到 POS 设备。
附录:
这是我正在运行的代码我的个人电脑:
Dim uri As Uri = New Uri("http://www.ebizchargeemv.com/getip.php?mac=000000000000000")
Dim data As Byte()
Using client As New WebClient
data = client.DownloadData(uri)
End Using
我想知道外部网站如何确定连接到我们的 LAN 的内部设备的 IP 地址。
答案1
我想知道外部网站如何确定连接到我们的 LAN 的内部设备的 IP 地址。
它只是报告向它报告的信息。最有可能的是,设备连接到该网站,建立正常的出站连接并报告其 MAC 地址和本地 IP 地址。可以使用任何标识符代替 MAC 地址,例如序列号,并且该方案仍然有效。