這裏有3個樣品IP地址上運行腳本:Perl的 - 決定是否基於IP地址的第三個八位
192.168.1.2
192.168.2.2
192.168.3.2
我希望這個腳本只在ip地址的第三個八位是3時運行。如果客戶端的ip地址的第三個八進制不是3,那麼我希望腳本中止。
這裏有3個樣品IP地址上運行腳本:Perl的 - 決定是否基於IP地址的第三個八位
192.168.1.2
192.168.2.2
192.168.3.2
我希望這個腳本只在ip地址的第三個八位是3時運行。如果客戶端的ip地址的第三個八進制不是3,那麼我希望腳本中止。
if ($addr =~ /^\d+\.\d+\.3\.\d+$/) {
# do your stuff
}
我假設你正在談論Perl CGI腳本。如果是這樣,從http://www.perlfect.com/articles/cgi_env.shtml:
REMOTE_ADDR
的IP地址從客戶端發出請求。
這可能是有用無論是記錄訪問的腳本( 例如投票腳本可能想通過自己的IP文件 日誌選民 爲了防止他們投票不止一次 )或阻止/行爲 對於特定的IP 地址有所不同。 (這可能是在具有被限制 到本地網絡腳本的要求 ,也許 每個已知 主機執行不同的任務)
所以,你應該能夠解析%ENV {」 REMOTE_ADDR'}並相應地調整你的執行。
我正在運行windows .. – 2011-05-19 17:53:47
use NetAddr::IP;
if (my $addr = NetAddr::IP->new($src) and $addr->within(NetAddr::IP->new('192.168.3.0/24')) {
....
}
當然,這一操作將是微不足道的改變對IPv6的支持,擴大允許的主機的子網,對證多個子網等
這裏有IP地址,這將是三個例子允許運行腳本:192.168.3.2,192.168.3.3和192.168.3.4 – 2011-05-19 17:30:07