使用Squid 3.3.8,我需要从Mysql检查客户端ip / mac。我听说过external_acl_types并写了一个小python脚本。这个脚本接受一个参数[ip / mac]并用mysql表检查它,如果没有结果它打印“ERR”,如果有这个IP的记录则打印“OK”。我读到帮助程序必须返回“ERR”或“OK”,这就是为什么这样设计的原因。但是现在我不知道如何获取客户端的ip / mac地址作为参数传递给脚本..任何人都可以解释一下吗?或者也许有人知道我在哪里可以得到这种类型的鱿鱼帮助程序..
此致
答案 0 :(得分:1)
我也使用squid_db_auth进行身份验证,请使用
sub ip_check_client()
{
my %hostname;
while (<>) {
my $line = $_;
my($host, $rest) = split / /, $line, 2;
if ($host =~ /^\d+\.\d+\.\d+\.\d+$/) {
unless (exists $hostname{$host}) {
$hostname{$host} = gethostbyaddr(inet_aton($host), AF_INET);
}
if ($hostname{$host}) {
$line = "$hostname{$host} $rest";
}
}
return $line;
}
}
请仅用于ip捕获