IP地址 - > PHP中的简单单词哈希表函数

时间:2014-04-24 21:13:54

标签: php hash hashmap hashtable ip-address

我有一个客户端的IP地址和一个包含简单单词的数组。让我们说......

$ip_addr = ip2long('172.16.254.12'); //returns an integer

$words = array('cat', 'dog', 'nest', 'barn', 'etc'); //arbitrary length

我试图找出一种巧妙的方法,将ip地址一致地映射到数组中的位置,以便172.16.254.12总是变成cat等等,而另一个IP会变成说,dog。理想情况下,这个过程不容易逆转,以掩盖客户端的IP地址,不应该有太多的冲突(但碰撞不是那么重要)。我知道这需要一个哈希表,但不完全确定如何实现它。现在不用担心ipv6。

1 个答案:

答案 0 :(得分:2)

不需要散列功能:

$ip_addr = ip2long('172.16.254.12'); //returns an integer
$words = array('cat', 'dog', 'nest', 'barn', 'etc'); //arbitrary length

$chosen_word = $words[$ip_addr % count($words)];