C# c语言中基于mac地址的Socket连接#

C# c语言中基于mac地址的Socket连接#,c#,macos,sockets,C#,Macos,Sockets,好的,这个问题来自于我对cognex dataman系列相机的使用。 在这种情况下,相机始终充当服务器,任何连接到它的东西都充当客户端。 当我们得到这些摄像机时,它们总是在一个奇怪的子网中。 例如:192.168.5.x,我的办公室和工作站位于192.168.2.x 因此,我有限的网络知识表明,我不应该与摄像机交谈 奇怪的是,dataman摄像头设置工具允许我通过mac地址连接到它,我想知道它是如何工作的 有没有办法单独通过mac地址打开一个套接字,同时绕过ip地址 我问这个问题的原因是因为我在

好的,这个问题来自于我对cognex dataman系列相机的使用。 在这种情况下,相机始终充当服务器,任何连接到它的东西都充当客户端。 当我们得到这些摄像机时,它们总是在一个奇怪的子网中。 例如:192.168.5.x,我的办公室和工作站位于192.168.2.x 因此,我有限的网络知识表明,我不应该与摄像机交谈

奇怪的是,dataman摄像头设置工具允许我通过mac地址连接到它,我想知道它是如何工作的

有没有办法单独通过mac地址打开一个套接字,同时绕过ip地址

我问这个问题的原因是因为我在一个审计系统上工作,比如说每台机器使用3个摄像头,一个工厂使用10台机器。总共有40个ip地址,摄像头也可见

如果把这30个摄像头放在另一个子网上,让软件通过mac地址与之对话,那就太棒了

这篇文章很可能暴露了我缺乏网络知识,但我在系列文章中没有找到一个很好的答案

无论如何,干杯,谢谢

192.168.5.x,我的办公室和工作站都在192.168.2.x上,所以我有限的网络知识告诉我,我应该无法与摄像机通话

这是真的,但是你可以设置一台服务器(或者如果那太贵,一台有两张网卡的计算机也可以)来连接它们,不过,除非你有一个熟练的IT人员可以轻松地完成这项工作,否则我建议这应该是你最后的选择

我想说为什么不找出摄像机为什么连接到这个奇怪的子网?我找到了一本在线手册,其中描述了以下内容:

读取器还可以生成Cognex设备配置(.cdc)文件,该文件存储运行时参数集和任何标识数据,如设备名称、IP地址、子网掩码等。Cognex建议为每个读卡器生成一个设备配置文件,以允许您以最小的工作量将读卡器恢复到其工作状态

似乎相机上存储了.cdc文件,其中包含有关网络配置等信息的信息。我想你应该深入研究一下

有没有办法单独通过mac地址打开一个套接字,同时绕过ip地址

仅使用MAC地址创建连接是不可能的,尤其是不使用套接字连接,因为它们只支持IP地址

尽管如此,只要您解决了子网问题,摄像头就会出现在Windows的(命令提示符)提供的(地址解析协议)表中

ARP
是CMD侦听的命令之一,它将显示界面内所有设备的所有IP和MAC地址(一起)(界面为192.168.2.X)

C#可以启动进程,比如CMD,还可以传递参数:

System.Diagnostics.Process.Start("cmd.exe", "arp -a");
link将帮助您在CMD中执行ARP命令,并使用C#获取其结果


祝你好运

太棒了,我怀疑与Mac没有联系,但这证实了这一点。非常有用,谢谢。