2013-11-20 77 views
4

到本地主機在C在Linux上,有檢查的IP地址對應於localhost的規範的方法?如何檢查是否一個IP地址對應用C

也就是說,我正在尋找一個功能is_localhost這樣的,如果我的電腦有「1.2.3.4」的外部IP,然後調用任何「本地主機」,「127.0.0.1」或「1.2 is_localhost。 3.4「應該返回true,而其他IP將返回false。

在一個側面說明,難的是如何欺騙這個信息 - 不檢查主機以這種方式保證本地主機的請求實際上這臺計算機來的?

對於情況下,我正在寫一個服務器管理接口。我想通過網絡提供只讀管理位,如查看連接列表,但對於任何危險的操作,例如手動查殺連接,應該通過在服務器上運行腳本來完成。

謝謝!

+1

的IP爲自己的計算機(例如,'1.2.3.4'在你的例子)是** **不一樣的本地主機 - 該接口總是在'127.0.0.0/8 IPv4地址'範圍。你的意思是本地主機,還是你的意思是「這臺電腦」? – duskwuff

+0

我會非常懷疑在C中有一個規範的方法來檢查它,主要是因爲你的機器絕對沒有控制或影響其外部IP地址。我不知道ifconfig是如何做到的,所以也許值得檢查一下。 – badcook

+0

@duskwuff我只是指這臺電腦。 – Dan

回答

2

我想你可能試圖解決的方式是錯誤的問題 - 如果你想通過檢查限制訪問你的遠程訪問應用程序,如果它的本地主機或者沒有,那麼檢查IP地址將是一個非常糟糕的方式去做吧。 PC可以擁有任意數量的易於配置的IP地址的網絡接口。所以這會很容易解決。

你可能要考慮添加一些基本的身份驗證或乾脆不允許某些功能進行遠程運行。有很多方法可以實現這一目標,但我認爲問題的範圍在此結束 - 不要依賴於檢查IP地址。 :)