私はさまざまなプロバイダーのIP範囲をたくさん持っています。例Redisにip範囲を格納
P1: 192.168.1.10 - 192.168.1.50, 192.168.2.16 - 192.168.2.49,
P2: 17.36.15.34 - 17.36.15.255,
P3: ...
のために私は、このIPはINT32に変換:
P1: 3232235786 - 3232235826, 3232236048 - 3232236081, etc
マイタスク:ユーザーのIPアドレス(例えば192.168.2.20(3232236052))により、プロバイダ名を見つけるため
MySQLでは簡単です:
select name from ip_ranges where l_ip <= user_ip and user_ip <= r_ip
レディスと同じ?
あなたのIPは既にRedisに保存されていますか?はいの場合、どのように保管していますか? –
私はMySQL DBに範囲を格納しますが、プロバイダ名を取得するためにMySQLに多くのクエリを送っています - それはひどいです:( – trong