Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim localIP As String = "" '取得連線的IP localIP = Request.ServerVariables("REMOTE_ADDR").ToString Dim IP() As String = localIP.Split(".") '判斷前三碼是否為內網IP段 If IP(0) <> "192" OrElse IP(1) <> "168" OrElse IP(2) <> "3" Then Response.Write(">script type="text/javascript"> alert('此網頁只能從公司內網進入!網頁將轉向首頁!') >/script>") Response.Redirect("http://kkbruce.blogspot.com/") End If End Sub End Class
原理很簡單,我只是1.取得遠端IP,2.然後分割為陣列,3.然後比對一下,不對的話,4.就請他離開!因為轉向很快,所以那段javascript不會顯示,各位可以加強一下。
唯一的代價是,「完完全全無法從外網連線」。不過還是有解,我們或許可以偷放個參數,當參數為true時,就停用此段程式碼。
各位不要小看以上這段小程式,基本上他的作用不管是內網還是外網都可以很正常的運作,怎麼說?例如我們的Server是放在外面的機房,但只要我們公司對外的IP是固定IP,我們一樣可以使用以上的方式來過濾不安全的IP連線,不是公司的IP就不給連線,現在的ADSL要申請固定IP那麼簡單,所以這一段就留給大家去解決。
這個功能不需要寫程式
回覆刪除IIS本身就內建這樣的機制了,可以設定允許的來源IP
Dear Jed
回覆刪除我會從程式觀點出發,是因為…IIS有5.6.7...版本之分,不是每個版本都有你說的功能。
還是很感謝你提供資訊。