定义检查的多个ip地址

本文关键字:ip 地址 检查 定义 | 更新日期: 2023-09-27 18:05:32

我真的不知道怎么写标题。我要做的是:我在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是否在,然后停止连接。我已经定义了玩家IP,以plr.Account.IP为例。我如何定义数据库中要检查的每个IP ?我已经尝试了几种方法,但都失败了,我仍然是很新的这方面的编码,我只是在寻找一些帮助。:)

编辑:

好吧,对不起,我想我说错了。我是一款小游戏的开发团队成员(游戏邦注:对我来说这主要是练习,这样我就能变得更好)。我删除了我试图做的事情,因为它失败得很惨,我无法在那里重建。我可能应该把它注释掉,但我觉得不值得。我想做这样的东西

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

差不多。BannedIP是我放进去的MySQL的任何ip。我正在尝试Apomene现在发布的内容

定义检查的多个ip地址

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
}

在程序开始时将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
}