V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
feijilei
V2EX  ›  程序员

ip hash 算法谁会?(python 或 php)

  •  
  •   feijilei · 2014 年 2 月 8 日 · 6474 次点击
    这是一个创建于 4367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    将用户的ip 过算法处理 后得到 1-10的整数中的某个数
    12 条回复    1970-01-01 08:00:00 +08:00
    dorentus
        1
    dorentus  
       2014 年 2 月 8 日 via iPhone
    对十取模再加一…
    Livid
        2
    Livid  
    MOD
    PRO
       2014 年 2 月 8 日
    所有的 IP 地址都是可以转化成一个整数的,在 PHP 里的话,就是 ip2long()
    feijilei
        3
    feijilei  
    OP
       2014 年 2 月 8 日
    @Livid 当用户访问时,我想根据他们的ip 判断 然后跳转到不同的网站(比如5个网站),统计一天的数据,要5的网站得到的访问是差不多的
    family
        4
    family  
       2014 年 2 月 8 日 via iPhone
    nginx做吧
    likexian
        5
    likexian  
       2014 年 2 月 8 日
    根据ip没办法均衡分配吧,得看访问的人的ip分布了

    用dns轮询就省事了,直接加x条a记录

    或者参考dns轮询,自己加个计数器
    wklken
        6
    wklken  
       2014 年 2 月 8 日
    python用socket模块,可以直接转得到int再取模
    stackpop
        7
    stackpop  
       2014 年 2 月 8 日   ❤️ 1
    ip本身就是一个32位的无符号整数,直接模5好了。但是这样并不保证均衡。
    dorentus
        8
    dorentus  
       2014 年 2 月 8 日 via iPhone
    所以这明显是个 X-Y 问题么…

    想要实现你后来说的,又要尽量平均分布,其实很简单,每个客户端第一次访问的时候随机选择一个分配给它,然后记下来就是了,下次它再来访问的时候分配记下来的给它。

    如果你并不是严格地要按 IP 来分,那么其实不记在服务器端都可以,客户端浏览器每次访问的时候服务器随机选择一个目标,然后输出 HTTP 永久跳转给客户端,这样一般来说只要用户不去折腾浏览器缓存,下次访问的时候浏览器就会直接去之前选中的目标网址了。(这么做似乎有滥用之嫌…不过话说回来,你的这个需求是怎么来的,怎么这么奇怪…)
    otakustay
        9
    otakustay  
       2014 年 2 月 9 日
    @dorentus 永久跳转可能会让用户再也回不来,基本上我觉得楼主是在做小流量AB试验,这么玩可能会造成用户再也脱离不了小流量的状况,并不合适,还是在cookie里加一个标记更好,随时可以清除
    yaroot
        10
    yaroot  
       2014 年 2 月 9 日
    consistent hashing
    workaholic
        11
    workaholic  
       2014 年 2 月 9 日
    按照你的意思,各个节点负载要相同,需要用到负载均衡算法: 轮询(Round Robin, RR),你可以查一下具体实现,比较简单
    mengzhuo
        12
    mengzhuo  
       2014 年 2 月 10 日
    python

    struct.unpack("!L", socket.inet_aton(ip))[0] % (自个模吧)
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2776 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:36 · PVG 17:36 · LAX 01:36 · JFK 04:36
    ♥ Do have faith in what you're doing.