我有一个下载系统,允许免费(free)用户和高级(vip)用户下载,但是用户购买成vip后,他们复制他们帐户给他们朋友下载,所以我的主机现在崩溃,我现在希望避免vip帐户复制使用,现在计划规定同一vip帐户用户仅赋予5个ip,当然,动态ips除外(例如:152.168.1.23, 152.168.xx),一旦同一vip帐户用户登陆超过5个ip,将出现相关提示:您的vip帐户用户与ip不匹配,请联系管理员。请问:如何可以用mysql(如:执行语句)实现相关功能?这个sql语句怎么写?谢谢!

解决方案 »

  1.   

    简单说,我提供vip用户下载,他们现在把我分配给他们的用户名和密码给他的另外十几个朋友共享用,造成我的文件主机无法承受,所以我想把他们帐户绑定ip,一个帐户最多可以允许5个ip登录下载,如果监测该帐户登陆ip超过5个,将会提示:您的帐户与ip不匹配,请联系管理员。请问:怎样可以用mysql语句实现这个?或者有其它方法?谢谢!
      

  2.   

    新建一个表,使表的VIP号与你使用的表相符,然后做一个插入语句,使每次登录都将其IP号插入新建成的表中,而且VIP登录时要进行if语句判断VIP登录时的IP是否与表中记录的IP相条符或不满5个IP。
      

  3.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  4.   


    谢谢你!下面是我导出的mysql:
    -- phpMyAdmin SQL Dump
    -- version 3.2.4
    -- http://www.phpmyadmin.net
    --
    -- 主机: localhost
    -- 生成日期: 2010 年 05 月 09 日 09:56
    -- 服务器版本: 5.0.90
    -- PHP 版本: 5.2.6SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;--
    -- 数据库: `mytest_0429`
    ---- ----------------------------------------------------------
    -- 表的结构 `accounts`
    --CREATE TABLE IF NOT EXISTS `accounts` (
      `id` int(11) NOT NULL auto_increment,
      `host` varchar(55) NOT NULL,
      `username` varchar(55) NOT NULL,
      `password` varchar(55) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;--
    -- 转存表中的数据 `accounts`
    ---- ----------------------------------------------------------
    -- 表的结构 `members`
    --CREATE TABLE IF NOT EXISTS `members` (
      `id` int(4) NOT NULL auto_increment,
      `username` varchar(65) NOT NULL default '',
      `password` varchar(65) NOT NULL default '',
      `email` varchar(65) NOT NULL,
      `bwspace` int(11) NOT NULL,
      `bwtime` int(11) NOT NULL,
      `starttime` varchar(55) NOT NULL,
      `endtime` varchar(55) NOT NULL,
      `bwused` int(11) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;--
    -- 转存表中的数据 `members`
    ---- ----------------------------------------------------------
    -- 表的结构 `settings`
    --CREATE TABLE IF NOT EXISTS `settings` (
      `fds` varchar(35) NOT NULL,
      `ky` int(35) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;--
    -- 转存表中的数据 `settings`
    --INSERT INTO `settings` (`fds`, `ky`) VALUES
    ('defaultbwtime', 0),
    ('defaultbwspace', 0),
    ('aa', 33);现在就是要实现: 会员帐户只能允许1至5个ip与它匹配,一旦会员帐户登陆ip超过1至5个ip范围,将会提示:您的帐户与ip不匹配,请联系管理员。