在尝试这样的事情之前备份您的数据库,但您可以有两个cron作业.
第一个在晚上9点调用脚本
第二个在上午6点调用脚本
脚本将使用您选择的语言,并通过mysql连接到mysql数据库(我的意思是实际的mysql数据库.)
您可以让它修改用户表,以便您不希望能够登录的用户拥有一个不存在的允许主机.
对于第二个脚本,您只需撤消更改.
然后,您可以让这两个脚本都使用数据库或文件来获取临时黑名单的人员列表.
Perl中的扶手椅实现(假设你安装了mysql模块)
use DBI;
$dbServer='';
$user='';
$pass='';
$ident=$ARGV[0];
my $dsn = "dbi:mysql:database=mysql;host=$dbServer;port=3306";
my $dbh = DBI->connect($dsn, "$user","$pass") or die "Can't connet to the Database: $DBI::errstr\n";
my $sth = $dbh->prepare("UPDATE user SET Host='nobody' WHERE User='johndoe'");
$sth -> execute();
优雅的替代方案可能是将其作为mysql plugin实现,前提是您正在使用5.1但是,我不确定天气API允许这么多控制.