Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用唯一ID标识每个远程计算机_C#_Asp.net_.net - Fatal编程技术网

C# 如何使用唯一ID标识每个远程计算机

C# 如何使用唯一ID标识每个远程计算机,c#,asp.net,.net,C#,Asp.net,.net,如何识别具有唯一ID的远程计算机 在共享IP的网络上,IP地址可能不够唯一。 MAC或其他硬件信息不可用,或取决于操作系统、体系结构、配置等 Cookies是一种可能的解决方案。我可以删除浏览器上的cookies,以更改浏览器。此外,我还必须阅读大量信息(每个存储的cookie上的每个客户端)。在我的数据库中不存在任何关系 哪一种可能是解决方案?如果您想要一个永久标识符,简短的回答是您没有永久标识符。您无法使用MAC地址。它对路由器是可用的,但是当它到达你的时候,它已经被剥离了(实际上,你和客户

如何识别具有唯一ID的远程计算机

在共享IP的网络上,IP地址可能不够唯一。 MAC或其他硬件信息不可用,或取决于操作系统、体系结构、配置等

Cookies是一种可能的解决方案。我可以删除浏览器上的cookies,以更改浏览器。此外,我还必须阅读大量信息(每个存储的cookie上的每个客户端)。在我的数据库中不存在任何关系


哪一种可能是解决方案?

如果您想要一个永久标识符,简短的回答是您没有永久标识符。您无法使用MAC地址。它对路由器是可用的,但是当它到达你的时候,它已经被剥离了(实际上,你和客户机之间的每个路由器都用自己的MAC地址替换了MAC地址)

您已经有了IP地址(如果它来自一个私有的、不可路由的子网,或者如果请求正在被代理),那么您所拥有的只是代表客户端子网的单个IP地址

但是,您可以获取会话id:

HttpContext.Current.Session.SessionID
问题是这是一个相当短暂的值。您也可以设置一个持久性cookie,其过期日期在遥远的将来


当然,客户端系统可以随意丢弃cookie(或不接受cookie)。

另一种剥猫皮的方法是使用IPEndPoint,首先向给定的连接发送请求。从这里,您将返回一个返回数据包,您可以使用IPEndPoint.GetHashCode()。将该整数用作您的ID。它的优点是它的4个字节,而不是一个完整的字符串哈希

private void ReceiveUdp()
{
    while (IsRunning)
    {
        var packet = RavelNet.CreatePacket();
        _count = RnetSocket.ReceiveFrom(packet.Data.Array, ref packet.RemoteEp);
        //I am storing the endpoint in my packet but you can do YourIPEndPoint.GetHashCode(); will return an integer identifier
        packet.Data.Ptr = _count;
        packet.ReadHeader();

        lock (_inProcess)
            _inProcess.Enqueue(packet);
    }
}

您是否能够将某些软件推送到连接到网络的所有计算机上,以便客户端生成某些内容并将其发送到服务器,或者不需要客户端设置,您希望嗅探并唯一标识所有连接的计算机?我相信有一种方法可以将MAC电脑放在同一个局域网内,我的路由器如何在家里知道我的Android、PC和Apple box的MAC电脑?类似这样的东西可能会有所帮助:[?谢谢。客户提出了一个解决方案。我正在研究许多来源,但我没有找到任何解决方案。MAC是互联网上的远程机器。看看设计指纹,然后每当用户识别自己时,就将指纹与他们相关联。请记住,多个用户可以拥有相同的指纹,但如果你有1K指纹,则会有一个d 10万用户,他们的身份仍然减少了100倍。