定义检查的多个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现在发布的内容
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
}