使用C#如何確定URL是否是Intranet URL?我想要一些代碼來做一些事情,如果一個URL是一個內部網而不是公共的。如何判斷一個URL是否是Intranet網址?
回答
你不能隱式知道。如果您的Intranet網址看起來像完全合格的域名,那麼很難說清楚。要告訴的唯一方法是查詢兩個不同的DNS服務器(您自己的和公共的)。如果兩者都返回相同的結果,那麼它是一個互聯網域名。如果公共DNS服務器無法解析地址,那麼它很可能是一個內部網域。
我見過瘋狂的設置,其中Intranet站點被命名爲「intranet.com」,它在內部解析到Intranet,但是是由外部任意公司擁有的真實活動域。您不僅必須檢查它是否從兩個DNS服務器解析,但它解決相同的事情。 – rmeador 2009-09-11 18:38:11
如果您有關於內部IP與外部IP的先驗知識,此解決方案(將名稱解析爲IP)將起作用。如果添加一點配置(Intranet的有效IP範圍的列表),則說明問題已解決。不是一個漂亮的解決方案,但它會工作。 – 2009-09-11 19:02:27
另一個問題是,如果主機解析爲可路由的IP,因爲您的組織具有有效的A類IP,並將其用作Intranet IP。它使.Net等生活變得非常困難。 – user7116 2009-12-04 21:53:20
你知道內部子網(就IP地址而言)嗎?如果是這樣,我只需解析主機名並查看它是否是內部的。
一般而言,沒有可靠的方法可以通過Internet URL告知Intranet URL。如果內部網可用於您的程序,那麼它將看起來就像互聯網,如果不是,那麼您仍然不知道該URL是否應該是一個正常工作的Intranet URL,或者只是一個(暫時)中斷的Internet URL 。
您需要一些特殊的知識,例如提供Intranet的服務器的域名或IP,以便區分它們。
如果您想確定任何給定的URL是否是任何公司的Intranet URL(而不是專門針對某個特定公司的代碼),祝您好運。
itranet urls通常但並非總是TLD(頂級域名,例如.com
)。不過,我見過一些這樣做。
幾乎總是(AFAIK),Intranet域將解析爲與計算機當前地址類似的IP地址。請注意,我沒有說相同的子網;大型內聯網可以有多個子網。另請注意,如果計算機不在企業內部網中,將作爲解析爲類似IP地址的regualr域名。 (除非計算機在NAT後面)
如果url解析爲一個tcpIp地址,該地址是作爲專用IP地址留出的IP地址之一,那麼它絕對在您的Intranet上。這些都是
- 10.xxx.xxx.xxx,
- 172.16.xxx.xxx通過172.31.xxx.xxx和
- 192.168.xxx.xxx
,如果它要解析任何其他IP地址,實力仍然是在Intranet上,但它有一個公網IP地址,以便從Intranet外部潛在訪問
要增加別人的話,Intranet在其地址中沒有任何知道的頂級域名。我曾在幾家公司工作過,所有的內聯網都是這樣的:
http://developments/admin - 你會注意到根本沒有頂級域名。所以,它解決了網絡中的計算機。同樣,顧名思義,您不可能在公司環境之外訪問它。
正如回覆喬爾的帖子所述。這並非總是如此。 – Bryan 2009-09-11 18:43:52
我不是C#程序員,所以我不能爲您提供代碼,但基本方法會涉及將URL的主機名部分與Intranet中的服務器的主機名部分進行比較。或者,如果您的網址只使用IP而非DNS名稱,請將IP與您的Intranet服務器進行比較。
使用字符串操作破解URL - 雖然我想C#必須有一個URL類來爲你做這件事 - 然後提取主機名,將它與服務器列表進行比較。
簡單而不完美但適用於80%的情況是簡單地檢查URL是否有句點。我知道Intranet網址可以完全符合條件,但根據我的經驗(在微軟),大多數網站不會這樣做,而且這種方式非常有效。
您可以詢問Internet Explorer以查看該域是否與已接受的Intranet域的列表匹配。
註冊表項HKEY_CURRENT_USER是\軟件\微軟\的Windows \ CurrentVersion \ Internet設置\ ZoneMap \域名
有如果域中有1對將被視爲一個Intranet域協議的值。您需要執行nslookup來收集「真實」地址。
*詢問Internet Explorer *不,IE即使折磨它也不會背叛微軟。 ;) – 2015-06-26 16:47:34
- 1. 如何判斷一個字符串是否是網址?
- 2. 如何判斷一個IP地址是否私密?
- 3. 如何判斷網頁是否存在?
- 4. 如何判斷iptables是否阻塞了一個url
- 5. 如何判斷某個網址是否爲Facebook網頁或個人資料?
- 6. 如何判斷一個JSON對象是否是一個數組?
- 7. 如何判斷一個函數是否是一個類?
- 8. 如何判斷一個網站是否使用SSL
- 9. 如何判斷一個網站是否提供AJAX服務
- 10. 如何判斷一個git回購是否是一面鏡子?
- 11. 如何判斷「ZipArchiveEntry」是否是目錄?
- 12. 如何判斷一個標籤是網站還是圖片?
- 13. 如何判斷一個Type是否是靜態類?
- 14. 如何判斷一個類是否是java接口的實現
- 15. 如何判斷ParameterInfo類型是否是一個集合?
- 16. VB2010如何判斷一個數是否是整數
- 17. 如何判斷一個DLL是否是ComVisible?
- 18. 如何判斷一個ChildWindow是否是最頂層的窗口
- 19. 如何判斷NSData是否實際上是一個NSImage?
- 20. 如何判斷一個元素是否是jquery-ui小部件?
- 21. 資源加載:如何判斷它是否是一個目錄
- 22. 如何判斷Request.Form中的值是否是一個數字? (C#)
- 23. 如何判斷一個類是否來自另一個類
- 24. 如何判斷兩個地址是否在同一個頁面文件中?
- 25. 角ui網格 - 如何判斷我是否在最後一排
- 26. 如何判斷網絡訪問者是否是機器人
- 27. 如何判斷兩個網頁內容是否相似?
- 28. 如何判斷一種語言是否是一見鍾情的?
- 29. 如何判斷一個URL是合法的?
- 30. 如何判斷一個數字是否與ruby一致?
這是重要的,SLaks?我認爲這是一個合理的問題... – Atmocreations 2009-09-11 18:38:20
這將幫助我們給出更好的答案,特別是如果我們知道他在尋找什麼樣的內聯網。 – SLaks 2009-09-11 19:18:36