以下是3个示例IP地址:
192.168.1.2
192.168.2.2
192.168.3.2
我希望这个脚本只在ip地址的第三个octate为3时运行。如果客户端的ip地址的第三个octate不是3,那么我希望脚本中止。
答案 0 :(得分:3)
我假设您正在谈论Perl CGI脚本。如果是,请从http://www.perlfect.com/articles/cgi_env.shtml:
开始REMOTE_ADDR
客户端发出请求的IP地址。
这对于记录对脚本的访问非常有用(for 投票脚本可能想要的例子 通过他们的IP在一个文件中记录选民 为了防止他们投票更多 比一次)或阻止/行为 不同的特定IP 不会忽略。 (这可能是一项要求 在必须限制的脚本中 到你的本地网络,也许吧 为每个已知的执行不同的任务 主机)
所以你应该能够解析%ENV {'REMOTE_ADDR'}并相应地调整你的执行。
答案 1 :(得分:2)
if ($addr =~ /^\d+\.\d+\.3\.\d+$/) {
# do your stuff
}
答案 2 :(得分:0)
use NetAddr::IP;
if (my $addr = NetAddr::IP->new($src) and $addr->within(NetAddr::IP->new('192.168.3.0/24')) {
....
}
当然,改变IPv6支持,扩展允许主机的子网,检查多个子网等等,这当然是微不足道的。