获取连接到服务器上我的 ASP.NET MVC 应用程序的客户端计算机的 IP 和 MAC

本文关键字:客户端 应用程序 计算机 IP MAC MVC NET 连接 服务器 ASP 我的 | 更新日期: 2023-09-27 18:36:59

我刚刚注册,因为我需要一些澄清。 我是一个老人,但刚从系统分析学院课程毕业,我的第一份"真正的"工作是为当地公司设计系统。 这是交易。 我正在使用 ASP.NET MVC。 现在,该公司在一家大型制造工厂拥有装配线。 沿线是工人在生产线上做特定工作的车站。 该公司有纸质说明,逐步向工人解释如何在他们的工作站完成工作。 他们希望现在以电子方式完成所有这些工作。这就是我正在做的。

因此,当装配线的领导者开始轮班时,他们通过打开IE并连接到应用程序服务器来登录系统。 从那里,领导者选择要在生产线上"制造"的零件。 然后,系统进入指令文档存储库,并检索生产线上每个工作站运行所选零件所需的所有文档。 然后,系统需要根据将使用它们的站点(即站点 1 文档、站点 2 文档,....准备文档等)。 然后,系统需要自动打开线路上每个站点的客户端计算机上的IE浏览器窗口并显示登录屏幕。 然后,工人登录到工作站,并看到"仪表板"屏幕,其中的说明表格就在他面前,带有用于浏览工作站的各种文档的按钮。

所以现在,我们希望系统将每个装配线沿线的每台工作站机器的 IP 和 Mac 地址存储在一个表中,以及表示装配线和工作站 # 的字段(即,表中的一行将具有 MAC |知识产权 |装配线编号 |站号)。 管理员将事先填充此表,以便系统已经知道地板上每台计算机的Mac和IP是什么。 因此,当领导者选择要运行的零件时,系统只需检查领导者登录的机器并获取其MAC和IP,然后在表中查找机器所在的线路。 然后,它可以为线路上的每个工作站创建一个文档队列,然后当队列准备就绪时,它可以在表中查找线路上每台机器的IP,以便它可以在正确的机器上打开登录屏幕。

但是,IP 可能会不时更改。 出于这个原因,我们希望确保在系统和客户端之间需要发生任何通信时,我们还使用 MAC 地址来验证工作站机器的身份。 仅靠IP还不够好。 此外,我们在站点上为此使用所有零客户端。

所以,如果你还在读书,哈哈。 我的系统在服务器上如何在连接到它的机器上运行 getMAC 命令?

获取连接到服务器上我的 ASP.NET MVC 应用程序的客户端计算机的 IP 和 MAC

Web 服务器无法获取客户端计算机的 MAC 地址。MAC 地址存储在物理以太网层上,不通过套接字连接进行路由。存储在数据包中的 MAC 地址在数据包旅程的每个跃点上都会更改。MAC是媒体访问控制的缩写,"媒体"是指本地通信媒体。虽然源和目标 IP 地址在整个旅程中保持不变(并用于远距离路由决策),但源和目标 MAC 地址仅指示下一跃点。

话虽如此,您可以像这样获取IP地址:

Request.UserHostAddress()

但是,正如您自己指出的那样,这并不可靠。特别是如果计算机位于代理或防火墙后面。

为了解决您的实际问题,即识别装配线中的机器,一种方法是获取计算机名称。您可以打开命令窗口并键入命令hostname,这将返回计算机名称。对于每台计算机,它应该是唯一的。如果没有,您可以通过右键单击来设置它 Computer .要通过 javascript 获取此名称,请使用以下代码:

function GetComputerName()
{
    try
    {
        var network = new ActiveXObject('WScript.Network');
        var computerName = network.computerName;
        return computerName;
    }
    catch (e) { }
    return "";
}

请注意,此代码仅适用于 Internet Explorer,并且可能需要您在浏览器中启用特殊的安全设置。