19 lines
569 B
Python
19 lines
569 B
Python
import hashlib
|
|
|
|
class IPHash():
|
|
def __init__(self, servers):
|
|
self.servers = servers
|
|
|
|
def get_next_server(self, client_ip):
|
|
hash_value = hashlib.md5(client_ip.encode()).hexdigest()
|
|
index = int(hash_value, 16) % len(self.servers)
|
|
return self.servers[index]
|
|
|
|
# Example usage
|
|
servers = ["Server1", "Server2", "Server3"]
|
|
load_balancer = IPHash(servers)
|
|
|
|
client_ips = ["192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4"]
|
|
for ip in client_ips:
|
|
server = load_balancer.get_next_server(ip)
|
|
print(f"Client {ip} -> {server}") |