我有一个服务器IP地址列表,我的应用程序与之交互以收集实时数据。收集的数据被发送到另一个系统的插槽。这些槽由八个字符长度的字符串标识。我想以编程方式创建这个插槽。我想创建一个方法,将服务器的IP地址映射到八个字符串。例如。给定192.80.24.200它将返回SLOT0001我假设散列函数将是一个很好的解决方案,但我不确定它是如何实现的。
该应用程序是C#Winforms .Net Framework 4.0。服务器是基于Windows的服务器。
答案 0 :(得分:5)
好吧,将IP地址转换为32位数字,然后将其转换为8位十六进制数字。
答案 1 :(得分:2)
IP地址长度为4个字节,可以直接写为八个十六进制字符:
void Main()
{
var addr = IPAddress.Parse("192.80.24.200");
var str = IPAddressToString(addr);
Console.WriteLine(str);
}
public string IPAddressToString(IPAddress address)
{
var result = new StringBuilder(8);
foreach(var b in address.GetAddressBytes())
{
result.AppendFormat("{0:x2}", b);
}
return result.ToString();
}
答案 2 :(得分:1)
八个字符是HEX表示。
这是将IP打包成八个字节的更快速,更简单的方法