在 iOS 中获取设备 ID 或 Mac 地址
我有一个使用rest与服务器通信的应用程序,我想获取iphone的mac地址或设备ID以进行唯一性验证,如何做到这一点?
I have an application that uses rest to communicate to a server, i would like to obtain the iphones either mac address or device ID for uniqueness validation, how can this be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
[[UIDevice currentDevice] uniqueIdentifier]
保证对于每个设备都是唯一的。[[UIDevice currentDevice] uniqueIdentifier]
is guaranteed to be unique to each device.文档建议使用 CFUUIDCreate 而不是
[[UIDevice currentDevice] uniqueIdentifier]
因此,您可以这样做在您的应用程序中生成唯一的 id
请注意,您必须将 uuidString 保存在用户默认值或其他位置,因为您无法再次生成相同的 uuidString。
您可以使用 UIPasteboard 来存储您的生成的uuid。 如果应用程序将被删除并重新安装,您可以从 UIPasteboard 读取旧的 uuid。 当设备被擦除时,粘贴板也会被擦除。
在 iOS 6 中,他们引入了 NSUUID 类 旨在创建 UUID 字符串
此外,他们还在 iOS 6 中添加了
@property(nonatomic, readonly, keep) NSUUID *identifierForVendor
到 UIDevice 类另外,在 iOS 6 中,您可以使用 ASIdentifierManager 类。 在那里你有
编辑:
请注意
advertisingIdentifier
可能会返回因为iOS中似乎有一个错误。 相关问题:advertisingIdentifier和identifierForVendor返回“00000000-0000-0000” -0000-000000000000"
The docs recommend use of CFUUIDCreate instead of
[[UIDevice currentDevice] uniqueIdentifier]
So here is how you generate an unique id in your app
Note that you have to save the uuidString in user defaults or in other place because you can not generate the same uuidString again.
You can use UIPasteboard to store your generated uuid. And if the app will be deleted and reinstalled you can read from UIPasteboard the old uuid. The paste board will be wiped out when the device will be erased.
In iOS 6 they have introduced the NSUUID Class that is designed to create UUIDs strings
Also they added in iOS 6
@property(nonatomic, readonly, retain) NSUUID *identifierForVendor
to the UIDevice classAlso in iOS 6 you can use ASIdentifierManager class from AdSupport.framework. There you have
Edit:
Pay attention that the
advertisingIdentifier
may returnbecause there seems to be a bug in iOS. Related question: The advertisingIdentifier and identifierForVendor return "00000000-0000-0000-0000-000000000000"
对于 Mac 地址,您可以使用
实现
使用:
For a Mac Adress you could use
implentation
Use:
用这个:
Use this:
在 IOS 5 中,
[[UIDevice currentDevice] uniqueIdentifier]
已弃用。最好使用
-identifierForVendor
或-identifierForAdvertising
。可以在这里找到很多有用的信息:
iOS6 UDID - 什么与identifierForAdvertising相比,identifierForVendor有什么优势?
In IOS 5
[[UIDevice currentDevice] uniqueIdentifier]
is deprecated.It's better to use
-identifierForVendor
or-identifierForAdvertising
.A lot of useful information can be found here:
iOS6 UDID - What advantages does identifierForVendor have over identifierForAdvertising?
在这里,我们可以使用 Asp.net C# 代码找到 IOS 设备的 MAC 地址...
.aspx.cs
.class 文件
Here, We can find mac address for IOS device using Asp.net C# Code...
.aspx.cs
.class File