2014-04-24 39 views
-1

我有一個客戶端的IP地址和一個包含簡單單詞的數組。比方說......IP地址 - > PHP中的簡單單詞哈希表函數

$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。

+0

爲什麼downvote呢? – wnajar

回答

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)]; 
+0

讓我感覺很蠢..謝謝。 – wnajar