2015-05-18 59 views
0

我有三個有關PHP $_SERVER['SERVER_ADDR']變量的快速問題。變量是否唯一(整個互聯網中只有一個)?變量會不會改變?如果其中任何一個問題都不是,是否有一種方法可以通過PHP在互聯網上唯一標識服務器?

+0

可能重複[Is $ \ _ SERVER \ ['SERVER \ _ADDR'\] safe to rely on?](http://stackoverflow.com/questions/5705082/is-serverserver-addr-safe-to-rely - ) –

+0

看看是否有幫助:http://stackoverflow.com/questions/5705082/is-serverserver-addr-safe-to-rely-on由於這是從客戶端,有可能是IP地址隨時間變化。 – Maximus2012

+0

@ Maximus2012那麼我可以使用gethostbyname($ _ SERVER ['SERVER_NAME'])來可靠地獲取服務器的IP地址嗎? – Flibio

回答

3

你的問題是有點不清楚,但在評論你問:

所以我可以使用的gethostbyname($ _ SERVER [ 'SERVER_NAME']),以可靠地獲取服務器的IP地址?

答案一般是:。雖然服務器的主機名不會更改,但IP可以在Web應用程序的生命週期中更改。 IP更改的原因可能是服務器從一個主機重新定位到另一個主機。

甚至基於循環的DNS負載均衡,其中多個IP地址分配給相同的主機名。特別是當使用後者時,gethostbyname($_SERVER['SERVER_NAME'])將持續爲每個DNS請求提供不同的IP地址。

另一個原因是負載均衡器後面的Web服務器。然後將負載均衡器的IP地址分配給主機名,在這種情況下,Web服務器本身(運行PHP的地方)具有內部地址。

+0

所以我可以使用服務器的主機名作爲唯一標識符嗎? – Flibio

+0

這取決於您的應用程序,只要您使用的是單個Web服務器:是的。如果服務器位於負載均衡器的後面,或者甚至使用基於DNS的負載均衡:否。 – hek2mgl

+0

@ hek2mlg好的謝謝 – Flibio

相關問題