2017-06-20 116 views
-3

你能給我一個最簡單的方法來檢查在Linux上使用C程序的互聯網可用性嗎?C中是否有任何庫函數來檢查Internet連接?

我已經實現了一個程序來在C中運行系統命令'traceroute'。在此之前,我必須檢查Internet連接是否可用。那麼你能提出一種方法嗎?

+4

「不好用」就像是長時間喝咖啡或什麼? –

+0

是否有任何庫函數? (我是網絡編程的新手) –

+0

好吧,存在一個很大的問題 - 互聯網並不作爲一個實體存在,所以你不能100%可靠地檢測到它的任何「連接」。你可以肯定地猜測 - 如果你ping Google並且失敗,你沒有互聯網連接..或者因爲某些原因Google無法訪問..... – ThingyWotsit

回答

0

簡答:沒有。 C和C++都不具有網絡直接知識或任何內置網絡功能。

根據您所使用的第三方庫,則可能是一些你可以使用,但依賴於庫中,所以不能直接C.

的一部分

我能想象有出庫那裏可能會嘗試ping一些內部/外部地址,執行名稱查找等。但是,如果你在一個孤立的網絡上,無法ping,查找或跨越防火牆到達某個位置,可能是完全有效,並不表示網絡問題。

+0

謝謝。你能建議我一種檢查互聯網可用性的方法嗎?我在問一個簡單的c函數或類似的東西.. –

+3

「簡單」?不可以。取決於需要什麼和網絡。你需要檢查服務器的連接嗎?檢查名稱服務器是否啓動?檢查防火牆是否讓TCP或UDP數據包通過?檢查端口是否打開?這個問題沒有「簡單」的解決方案。 –

+0

好的。我只是使用C程序運行'traceroute'命令。所以,我必須在運行系統命令之前檢查互聯網連接。這是我的問題。請你可以建議一種方法來做到這一點。 –

相關問題