我需要生成一些永远不会重复的int值(至少在理论上).我知道有arc4random()fnc,但我不知道如何使用它与当前日期或smth :(
我们使用以下代码检索Windows PC的活动MAC地址.
private static string macId()
{
return identifier("Win32_NetworkAdapterConfiguration", "MACAddress", "IPEnabled");
}
private static string identifier(string wmiClass, string wmiProperty, string wmiMustBeTrue)
{
string result = "";
System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
if (mo[wmiMustBeTrue].ToString() == "True")
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
}
return result;
}
//Return a hardware identifier
private static string identifier(string …Run Code Online (Sandbox Code Playgroud) 我即将将我的数据库从使用旧成员资格迁移到mvc4中包含的成员资格,而mvc4使用的是int代替guid.
更改类型时,我收到以下错误:
连接的数据库服务器不支持从int到uniqueidentifier的转换.
我怎样才能改变UserId以int通过SQL Server Management Studio中?
我试图从计算机中获取唯一的标识符,并希望每次都可以可靠地返回相同的MAC地址.相信我,我有使用MAC地址的原因,并阅读了许多关于备用唯一ID方法的帖子(是的,如果他们没有任何网卡,我会考虑).
问题出在.NET中我无论如何都不知道特定的NetworkInterface是否是一个物理硬件网卡,例如"Nortel IPSECSHM Adapter - Packet Scheduler Miniport",它会在您连接到某些VPN或WiFi网络时添加.
我知道如何通过使用类似于此的代码获取Mac地址:
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
log.Debug("NIC " + nic.OperationalStatus + " " + nic.NetworkInterfaceType + " " + nic.Speed + " " + nic.GetPhysicalAddress() + " " + nic.Description);
}
Run Code Online (Sandbox Code Playgroud)
可以理解的是,没有100%的方法可以确保我获得内部网卡,但我想选择MAC地址来返回最不可能改变的给定机器.独立于诸如以下因素 - 无论是否连接到wifi ......通过某种类型的系绳连接进行连接......或者他们安装了一些新的vpn软件,增加了新的界面.
1)选择第一个"Up"界面.这在我的笔记本电脑上失败了,因为"Packet Miniport"总是在运行.此外,如果我将手机连接到笔记本电脑,这也会显示为第一张卡.
2)选择最合适的类型......这个失败b/c基本上所有东西都显示为"以太网",包括WiFi适配器和我的iPHone网络连接.
3)选择具有IP地址的NIC.由于以下几个原因导致失败:1)网卡可能未连接到LAN 2)有多个可能具有IP地址的网卡.
4)只需发送所有MAC地址......问题是列表会根据安装的软件而改变,并且很难进行比较.
5)以最快的速度选择mac地址.我想这可能是我最好的选择.我认为可以说最快的界面通常是最永久的.
或者,可能还有其他方法可以检测.NET中的物理卡,或者如果您可以推荐一个提供不同信息的API调用,我会考虑调用其他API调用.
还有其他想法吗?
这里演示的是当我的iphone被束缚时上面的示例代码的输出:
DEBUG - NIC Down Ethernet 500000 0021E98BFBEF Apple Mobile Device Ethernet - Packet Scheduler Miniport
DEBUG - NIC Up Ethernet 10000000 …Run Code Online (Sandbox Code Playgroud) 我正在建立一个分析系统,API调用将提供唯一的用户ID,但它不是按顺序而且太稀疏.
我需要为每个唯一用户ID提供一个自动增量ID,以在bitarray/bitset中标记分析数据点.因此,第一个用户遇到的对应于比特阵列的第一个比特,第二个用户将是比特阵列中的第二个比特,等等.
那么在MongoDB中生成增量唯一用户ID有一种可靠而快速的方法吗?
可能重复:
是否有唯一的Android设备ID?
在许可文档中,Android开发人员提到了一种简单的方法来或多或少地安全地识别Android设备.他们正在使用android.Settings.Secure.ANDROID_ID.
他们说他们为此查询系统设置.但他们没有进一步解释这一点.
如何获取android_id并且我是否需要特殊权限?
GNU/Linux为i386架构获取唯一机器ID的最佳实践方法是什么?
除mac地址外还有什么好方法吗?
我想要iPhone设备的唯一标识符字符串而不是UDID和MAC.
1.获取UDID和MAC苹果已被弃用.
2.我们可以使用UUID但重新安装应用程序或删除应用程序后会有所变化.
我希望在重新安装或删除或升级iOS版本后,设备的任何唯一值都保持不变.
当我调用session_start()或者session_regenerate_id(),PHP生成看似是会话ID的随机字符串.我想知道的是,它只是一个随机的字符序列,还是像uniqid()函数一样?
因为如果它只是随机字符,理论上你不能遇到冲突吗?如果用户A已登录,然后用户B已登录,并且尽管用户B生成相同的会话ID,但用户B最终无法访问用户A的帐户.
即使PHP检查是否已经存在具有相同ID的会话,如果是,再次重新生成ID ...我不认为我想要一个EVER产生相同ID两次的系统,即使在垃圾收集之后 - 也许我想存一张它们的表格并检查它们是否有可能被劫持或其他什么.
如果它不是唯一的,我该如何强制执行唯一性?我宁愿使用PHP配置来实现它,而不是在我制作的每个脚本中实现它.PHP会话的好处不是担心幕后的技术细节.
我是本地反应新手,正在世博会上从事我的第一个项目。我正在尝试为用户下的每个订单生成唯一的 ID,以下是我尝试过的
const orderId = () => {
var S4 = () => {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
};
return (
S4() +
S4() +
"-" +
S4() +
"-" +
S4() +
"-" +
S4() +
"-" +
S4() +
S4() +
S4()
);
};
console.log(orderId);
Run Code Online (Sandbox Code Playgroud)
我在终端中得到的是 [Function orderId]
uniqueidentifier ×10
c# ×2
iphone ×2
networking ×2
objective-c ×2
.net ×1
android ×1
bitarray ×1
bitset ×1
cookies ×1
gnu ×1
ios ×1
javascript ×1
linux ×1
mac-address ×1
mongodb ×1
php ×1
react-native ×1
session ×1
spoofing ×1
sql-server ×1
ssms ×1
unique ×1
windows ×1