定义多个IP以进行检查

时间:2015-07-29 11:28:39

标签: c# mysql

我真的不确定如何说出标题。我想做的事情:我在Mysql中有一个表,其中有一列用于我已经添加的IP。如果桌面上有IP,我不希望播放器连接到我的服务器。 表格如下所示:

    #  |  IP
    1  | 127.0.0.1
    2  | 128.0.0.1
    3  | 129.0.0.1
    4  | 130.0.0.1

我希望,使用C#,它可以检查连接的人是否已经打开,然后停止连接。我已经定义了播放器IP,它以plr.Account.IP为例。我究竟如何定义数据库中的每个IP来检查?我已经尝试了几种方法,但都失败了,我对这方面的编码仍然很陌生,我只是在寻找一些帮助。 :)

编辑:

好吧,对不起,我想我措辞错了。我是一个小型游戏的开发小组(它主要是为我练习,所以我可以变得更好。)我删除了我想要做的事情,因为它失败了,我无法重建在那里。我可能应该评论它,但我没有看到它值得。我试图做这样的事情

           If(player.Account.IP == BannedIP) 
    {
     //banned
    } 

这样的事情。 BannedIP将是我放在那里的任何来自MySQL的IP。我正在尝试Apomene现在发布的内容。

2 个答案:

答案 0 :(得分:1)

var cmd = new MySqlCommand("SELECT * FROM Ips WHERE ip=@playerip", MySqlConn.conn);
cmd.Parameters.AddWithValue("@playerip", plr.Account.IP);
cmd.Prepare();
MySqlDataReader res = cmd.ExecuteReader();
if (res.HasRows)
{
     // banned
}

答案 1 :(得分:0)

在程序开始时将IP保存在列表中:

 List <string> IPs=new List<string>();
 MySqlConnection conn = new SqlConnection("yourconnectionstring");
 conn.Open();   
  MySqlCommand cmd = conn.CreateCommand();
  string command = "Select IP from myIPTable";
  cmd.CommandText = command;
  MySqlDataReader sqlreader = cmd.ExecuteReader();
  while (sqlreader.Read())
    {
      IPs.Add(sqlreader[0].ToString());
    }

之后您可以检查用户是否可以使用该连接:

...
if (IPs.Contains(plr.Account.IP)
{
  ///dont allow use to make any actions
}