【发布时间】:2011-10-06 17:18:56
【问题描述】:
我想在我的办公室里对所有员工说,如果有人进入一个网站,他首先会转到某个 URL,该 URL 将保存他试图访问的 URL,然后将他移动到他的 URL。
我该怎么做?通过主机文件还是通过路由器或其他方式来完成?
或者我在哪里可以读到它?或者怎么称呼? :)
【问题讨论】:
-
听起来你想要一个强制门户。
标签: proxy
我想在我的办公室里对所有员工说,如果有人进入一个网站,他首先会转到某个 URL,该 URL 将保存他试图访问的 URL,然后将他移动到他的 URL。
我该怎么做?通过主机文件还是通过路由器或其他方式来完成?
或者我在哪里可以读到它?或者怎么称呼? :)
【问题讨论】:
标签: proxy
您所说的是互联网监控。通常,您需要使用专门用于执行此操作的软件来设置服务器。
我不是在做代言,但我首先想到的是 iPrism,因为它是我最近看到的。 http://www.edgewave.com/products/web_security/
也就是说,这个问题应该转移到 ServerFault.com,因为它不是编程问题,除非你打算自己编写一个 Internet 监控系统。
【讨论】:
如果您有一个透明代理,(或不那么透明但强制)例如squid 他们经常提供允许你重写 URL 的方法。使用 squid 你可以设置一个url_rewrite_program:
url_rewrite_program /usr/local/bin/redirector.pl
然后您编写一个重定向程序,例如这个概念证明:
my %approved;
while (<>) {
chomp;
my @parts = split;
my ($url, $ip, $ident, $method, $keypairs) = @parts;
if (defined $approved{$ip}) {
# We've seen them before
print "$url\n";
}
else {
# Not seen before
# You *will* need to urlencode $url for this
print "302:http://internal.site/page?dest=$url\n";
$approved{$ip} = 1;
}
}
那么您需要做的就是实现http://internal.site/page,以便它显示您的消息,并且基于时间或基于点击的重定向返回到它作为dest 传递的url。
您可能想要做的是使用%approved 记录您最后一次看到来自该机器的请求并超时。您可能还想考虑使用比 IP 地址更低级别的东西,例如查找 MAC 地址和交换机端口。
【讨论】: