2011-05-03 16 views
0

如何編寫代碼以確定兩個主機名是否在同一個域中?
喜歡:如何確定兩個主機名是否在同一個域中

    www.example.com並在同一個域中 login.eample.com在同一個域中
    www.example.com.uslogin.exmaple.com.us在同一DOMIN
    x105.www.example.comlogin.example.com

,甚至www.example.com並且在有可能

+2

爲什麼「www.example.com」和「login.example.com.us」會「在同一個域中」? – deceze 2011-05-03 12:56:33

+0

除x105.www.example.com和login.example.com外其他人都一樣 - 是否有拼寫錯誤? – 2011-05-03 12:57:50

+0

但example.com和example.com.us不一樣嗎?此外,當你說代碼的意思是你的意思是正則表達式(如你的標籤),如果不是,你想用什麼語言來做? – 2011-05-03 12:58:08

回答

0

使用perl同一個域login.example.com.us因爲沒有提到任何語言,所以請原諒...

([^.]+\.[^.]+$) 

該正則表達式將爲您提供第一個實例的域作爲捕獲的字符串($ 1)。你可以使用那個被捕獲的字符串,如果這是perl,就像這樣,看看它們是否匹配。

$firstHostName =~ /([^.]+\.[^.]+$)/; 
if ($secondHostName =~ /$1$/) { 
    print "same domain"; 
} 
+0

您的表達式只查看域名的兩個元素。這將使'.co.uk'域中的每個域都進入'同一'域,英國公司可能會反對。我認爲你需要去除FQDN的第一個元素,剩下的就是域名。當然,即使假設錯別字是固定的,這也就意味着問題的例子3和例子4不會在同一個域中(數字3,因爲「www.example.com」不一定與example.com相同的域) ')。或者,您必須知道要分析多少個組件。美國城市網站很有趣。 – 2012-05-05 22:49:06

+0

請參閱[Wikipedia](http://en.wikipedia.org/wiki/.us),瞭解有關URL的討論,例如[http://www.ci.sweeny.tx.us/'](http:/ /www.ci.sweeny.tx.us/),其中'同一個域'中的主機名都以'.ci.sweeny.tx.us'結尾,這將需要4個級別的域在末端相同。 – 2012-05-05 22:50:59

相關問題