首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C从客户端获取唯一标识符(TCP套接字)

C从客户端获取唯一标识符(TCP套接字)
EN

Stack Overflow用户
提问于 2017-06-27 05:12:16
回答 3查看 1.3K关注 0票数 0

当客户端通过TCP套接字连接到我的服务器时,我希望获得某种形式的常量值,我可以用它来标识客户端(用C语言),这样当他们将来连接到我的服务器时,我就知道他们是谁了。目前我使用客户端远程IP作为唯一标识符,问题是客户端IP不是一个真正的常量值,可能会根据它们是否连接到VPN或是否具有动态IP而变化。因此,我研究了从TCP套接字获取客户端MAC地址,这似乎是可能的,但获取它非常单调乏味。所以我想知道是否有其他唯一的值可以从TCP套接字中拾取,并在将来的连接中使用该值来识别客户端?

EN

回答 3

Stack Overflow用户

发布于 2017-06-27 05:52:32

让客户端生成并发送GUID / UUID,并将其存储在客户端以供后续连接使用。

128位GUID发生冲突的可能性极小。

生成它们的API是现成的。

票数 3
EN

Stack Overflow用户

发布于 2017-06-27 05:46:02

没有对此的TCP或IP支持,并且转到较低级别不会有任何帮助,因为这些对等点不太可能是所讨论的客户端。这意味着您必须查看更高级别的协议。

例如,如果您使用的是HTTP,则可以在客户端将返回给您的cookie中提供标识号。或者您可以要求客户端提供凭据。这两种方法都有失败模式。

票数 1
EN

Stack Overflow用户

发布于 2017-06-27 09:00:23

这取决于运行客户端程序的操作系统。对于linux/iOS/Windows,可以使用MAC地址或GUIID/UUID;对于基于MCU的RTOS,可以使用接口的MAC地址,也可以使用SPI flash的ID。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44768767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档